jQuery - 如何确定父元素是否存在?
我正在尝试动态链接到图像,但是我无法正确确定父链接是否已存在。
这就是我所拥有的,
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 标签是否包含在 a 标签中。
谁能看到我做错了什么吗?
任何建议表示赞赏。
谢谢。
I'm trying to dynamically and a link to an image, however I cannot correctly determine is the parent link already exists.
This is what I have,
if (element.parent('a'.length) > 0)
{
element.parent('a').attr('href', link);
}
else
{
element.wrap('<a></a>');
element.parent('a').attr('href', link);
}
Where element refers to my img element and link refers to the url to use.
Every time the code runs, the else clause is performed, regardless of whether or not the img tag is wrapped in an a tag.
Can anyone see what I'm doing wrong?
Any advice appreciated.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
第一行应该是:
The first line should be:
假设
element
实际上是一个 jQuery 对象:如果
element
是一个 DOM 节点:Assuming
element
is actually a jQuery object:If
element
is a DOM node:您的代码将被解析为使用参数
'a'.length
调用element.parent
。因此,它相当于
element.parent(1)
,这是一个无效的调用。您需要通过将
.length
移动到)
之后来获取 jQuery 对象的长度,如下所示:此外,如果
element
则这将不起作用嵌套在某个其他标签中,而该标签本身又位于标签中。
您可能想改为调用
closest
。Your code is parsed as a call to
element.parent
with the argument'a'.length
.It is therefore equivalent to
element.parent(1)
, which is an invalid call.You need to get the length of the jQuery object by moving
.length
after the)
, like this:Also, this will not work if
element
is nested in some other tag which is itself in an<a>
tag.You might want to call
closest
instead.