もしa == "http://foo.bar"
そして$(b[0]).attr("href") == "http://foo.bar"
次に、次のコードが true を返さないのはなぜですか。
$("[href^=\"" + a + "\"]", b).length > 0
?
もしa == "http://foo.bar"
そして$(b[0]).attr("href") == "http://foo.bar"
次に、次のコードが true を返さないのはなぜですか。
$("[href^=\"" + a + "\"]", b).length > 0
?
jQuery 関数に渡される 2 番目のパラメーターはセレクターのスコープを指定するため、つまり、bの子で選択された要素を見つけます。
では、一例として
<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());