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

Dan*_*Dan 13 jquery parent

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

这就是我的意思,

if (element.parent('a'.length) > 0)
{   
      element.parent('a').attr('href', link);            
}
else
{   
      element.wrap('<a></a>');
      element.parent('a').attr('href', link);     
}
Run Code Online (Sandbox Code Playgroud)

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

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

谁能看到我做错了什么?

任何建议表示赞赏

谢谢.

RoT*_*oRa 35

第一行应该是:

if (element.parent('a').length > 0)
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是使用`> 0`可以使代码更具可读性,更明显它的作用,可读性在简洁之前就已经开始了. (19认同)
  • `if(element.parent('a').length)`没有`> 0`就足够了,因为任何大于0的数字都默认为true. (4认同)

cle*_*tus 5

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

if (!element.parent().is("a")) {
  element.wrap("<a>")
}  
element.parent().attr("href", link);
Run Code Online (Sandbox Code Playgroud)

如果element是DOM节点:

if (!$(element).parent().is("a")) {
  $(element).wrap("<a>")
}  
$(element).parent().attr("href", link);
Run Code Online (Sandbox Code Playgroud)