1

IDが有効な親ではない理由がよくわかりません:http: //api.jquery.com/child-selector/

有効:

$("#listequestions tr").click(function() {
  $(this).addClass("success");
});

有効ではありません:

$("#listequestions > tr").click(function() {
  $(this).addClass("success");
});

誰かが私に理由を理解するのを手伝ってもらえますか?

ありがとうございました。

4

5 に答える 5

9

Atbodyがない場合は、テーブルに自動的に挿入されます。

そのため、一致させる唯一の可能な方法は、IDを、、または"#listequestions > tr"に与えることです。theadtfoottbody

これは、子セレクターの危険の1つです。

次のHTMLがあるとします。

<table id=listequestions>
    <tr><td>some text</td></tr>
</table>​

次に、trこれら2つのクエリによって一致します。

  • $('#listequestions > tbody > tr')
  • $('#listequestions tr')
于 2012-12-04T17:02:43.687 に答える
1

ここでは、idlistequestionsを持つ要素内の直接の子を選択しています

$("#listequestions > tr").click(function() {
  $(this).addClass("success");
});

ここでは、サブ子を含むidlistequestionsを持つ要素内のすべての要素を選択しています。

$("#listequestions tr").click(function() {
  $(this).addClass("success");
});

ありがとう

于 2012-12-04T17:03:28.473 に答える
1
$("#listequestions  tr")

一致させようとしますall the children which are tr

$("#listequestions > tr")

一致only the immediate childrenします..

したがって、trが直接の子でない場合、2番目の子は機能しません。

dystroyが指摘したように

于 2012-12-04T17:04:16.623 に答える
0

これは代わりに機能しますか?

$("#listequestions").children("tr").click(function() {
      $(this).addClass("success");
    });
于 2012-12-04T17:01:21.120 に答える
0
$("#listequestions").find("tr").click(function() {
      $(this).addClass("success");
});
于 2012-12-04T17:03:21.560 に答える