特定の要素のテキストを取得しようとすると、div
複数のjQuery関数をチェーンするときに以前のすべての「一致」を取得するという非常に奇妙な動作があります。
これは私のコードです:
var rows = $("tr");
var groups = [];
for (var i = 0;i<rows.length;i++){
if(rows.eq(i).html().toString().match(/TV/i)){
groups += rows.eq(i).find(":first-child div").text();
}
}
console.log(groups);
私が期待する出力は、一致したテーブル行の最初の子に含まれる div に含まれるテキストだけです。コンソールでその結果を取得しますが、その前に、すべてのテキスト、tr
すべての一致したtr
( .eq(i)
)、すべての td の ( :first-child
is a td
)、すべてdiv
の および THEN 出力の最後のビットでテキストを取得します最初の に含まれていdiv
ます。
だからgroups
、私がこのようなことをしたように、すべてのものを保持しています:
groups += rows.eq(i)
groups += rows.eq(i).find(":first-child")
groups += rows.eq(i).find("div")
groups += rows.eq(i).find("div").text();
私は jQuery を初めて使用し、標準の JavaScript セレクターのみを使用しましgetElementById("myID").getElementsByTagName("div")[0].innerHTML
た。innerHTML
div
myID
なぜこれが起こっているのですか、実際に探しているものをどのように入手できますか?