Ответ 1
Первая строка должна быть:
if (element.parent('a').length > 0)
Я пытаюсь динамически и ссылка на изображение, однако я не могу правильно определить, существует ли родительская ссылка.
Это то, что у меня есть,
if (element.parent('a'.length) > 0)
{
element.parent('a').attr('href', link);
}
else
{
element.wrap('<a></a>');
element.parent('a').attr('href', link);
}
Если элемент ссылается на мой элемент img и ссылка ссылается на используемый URL.
Каждый раз, когда выполняется код, выполняется условие else, независимо от того, завершен ли тег img в теге.
Может ли кто-нибудь увидеть, что я делаю неправильно?
Любые советы приветствуются.
Спасибо.
Первая строка должна быть:
if (element.parent('a').length > 0)
Предполагая, что element
на самом деле является объектом jQuery:
if (!element.parent().is("a")) {
element.wrap("<a>")
}
element.parent().attr("href", link);
Если element
- это DOM node:
if (!$(element).parent().is("a")) {
$(element).wrap("<a>")
}
$(element).parent().attr("href", link);
Ваш код анализируется как вызов element.parent
с аргументом 'a'.length
.
Поэтому он эквивалентен element.parent(1)
, что является недействительным вызовом.
Вам нужно получить длину объекта jQuery, перемещая .length
после )
, например:
if (element.parent('a').length > 0)
Кроме того, это не будет работать, если element
вложен в какой-либо другой тег, который сам находится в теге <a>
.
Вместо этого вы можете вызвать closest
.