我正在尝试动态和链接到图像,但我无法正确确定父链接是否已存在。
这就是我所拥有的,
if (element.parent('a'.length) > 0)
{
element.parent('a').attr('href', link);
}
else
{
element.wrap('<a></a>');
element.parent('a').attr('href', link);
}
其中element指的是我的img元素,link指的是要使用的url。
每次代码运行时,都会执行else子句,无论img标记是否包含在标记中。
谁能看到我做错了什么?
任何建议表示赞赏。
感谢。
答案 0 :(得分:33)
第一行应该是:
if (element.parent('a').length > 0)
答案 1 :(得分:5)
假设element
实际上是一个jQuery对象:
if (!element.parent().is("a")) {
element.wrap("<a>")
}
element.parent().attr("href", link);
如果element
是DOM节点:
if (!$(element).parent().is("a")) {
$(element).wrap("<a>")
}
$(element).parent().attr("href", link);
答案 2 :(得分:0)
您的代码被解析为对element.parent
的调用,其参数为'a'.length
因此,它等同于element.parent(1)
,这是无效的呼叫。
您需要在.length
之后移动)
来获取jQuery对象的长度,如下所示:
if (element.parent('a').length > 0)
此外,如果element
嵌套在<a>
标记中的其他标记中,则无法使用此功能。
您可能希望改为呼叫closest
。