jQuery – 如何确定父元素是否存在?

我正在尝试动态和链接到图像,但我无法正确确定父链接是否已存在。

这就是我所拥有的,

if (element.parent('a'.length) > 0) { element.parent('a').attr('href', link); } else { element.wrap(''); element.parent('a').attr('href', link); } 

其中element指的是我的img元素,link指的是要使用的url。

每次代码运行时,都会执行else子句,无论img标记是否包含在标记中。

谁能看到我做错了什么?

任何建议表示赞赏

谢谢。

第一行应该是:

 if (element.parent('a').length > 0) 

假设element实际上是一个jQuery对象:

 if (!element.parent().is("a")) { element.wrap("") } element.parent().attr("href", link); 

如果element是DOM节点:

 if (!$(element).parent().is("a")) { $(element).wrap("") } $(element).parent().attr("href", link); 

您的代码被解析为对element.parent的调用,其参数为'a'.length
因此它等同于element.parent(1) ,这是一个无效的调用。

你需要通过在。之后移动.length来获取jQuery对象的长度,如下所示:

 if (element.parent('a').length > 0) 

此外,如果element嵌套在一个本身位于标记中的其他标记中,这将不起作用。
你可能想要打电话给closest