gpt4 book ai didi

javascript - 我如何滥用选择器的开头?

转载 作者:行者123 更新时间:2023-11-29 17:22:16 26 4
gpt4 key购买 nike

如果 a == "http://foo.bar"$(b[0]).attr("href") == "http://foo.bar"

那为什么下面的代码不返回true:

$("[href^=\"" + a + "\"]", b).length > 0

?

最佳答案

因为传递给 jQuery 函数的第二个参数限定了选择器的范围,也就是说,在 b 的 children 中找到被选元素。

举个例子

<div id="one">
<div id="two" title="Test" />
</div>

这将返回 1

$('[title="Test"]','#one').length 

这将返回 0

$('[title="Test"]','#two').length 

实例:http://jsfiddle.net/mkudf/


根据您的评论,您似乎在将元素添加到 dom 之前做了一些事情,例如:

var $x = $('<div id="one" /><div id="two" title="Test" />');
alert($('[title="Test"]',$x).length); // alerts "0"

如果不将动态元素包装在一个额外的元素中,我找不到实现你想要的东西的方法(上面的警告“1”):

var $x = $('<div><div id="one" /><div id="two" title="Test" /></div>');
alert($('[title="Test"]',$x).length); // now alerts "1"

这应该不是什么大问题,当添加到 dom 中时,您可以使用 $x.children():

$someOtherElement.after($x.children());

关于javascript - 我如何滥用选择器的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772974/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com