2

もしa == "http://foo.bar" そして$(b[0]).attr("href") == "http://foo.bar"

次に、次のコードが true を返さないのはなぜですか。

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

?

4

1 に答える 1

5

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());
于 2012-08-02T07:39:19.503 に答える