0

JQuery のドキュメントでは、セレクターは"parent > child"、「親」で指定された要素の「子」で指定されたすべての直接の子要素を選択します。「直接の子」は、1 レベル下の要素です。たとえば、次のコードがあります。

    ...
    <table class="advanceSearch">
      <tr>
        <td>
          <ul class="form">
            <li>
              <label>Document Type:</label>
              <input type="text" id="cmbDocumentType" name="paramtitle" />
            </li>
            <li>
              <label>Title:</label>
              <input type="text" id="paramtitle" name="paramtitle" />
            </li>
            <li>
              <label>Notes:</label>
              <input type="text" id="paramNotes" name="paramNotes" />
            </li>
            <li>
              <label>Revision Number:</label>
              <input type="text" id="paramRevisionNumber" name="paramRevisionNumber" />
            </li>
            <li>
              <label>Draft Number:</label>
              <input type="text" id="paramDraftNumber" name="paramDraftNumber" />
            </li>
            <li>
              <label>Version Number:</label>
              <input type="text" id="paramVersionNumber" name="paramVersionNumber" />
            ...

input「param」で始まる ID を持つ要素を選択したいので、セレクターのfind()代わりにを使用しました。parent > child

      $("table.advanceSearch").find("ul.form").find('input[id^="param"]').attr("disabled", "disabled");

これはうまく機能しますが、find()セレクターを 2 つ持つのは冗長だと思います。これを短縮する方法はありますか?

4

3 に答える 3

4

実際にはまったく必要ありません.find()。代わりに 2 つの子孫セレクターを使用できます。

$('table.advanceSearch ul.form input[id^="param"]')

覚えておいてください: x > y(子セレクター) は多かれ少なかれ と交換可能であり$('x').children('y')$('x y')多かれ少なかれ と交換可能$('x').find('y')です。

于 2012-05-08T03:55:41.063 に答える
1

セレクターはもっと長くすることができます:

$(".advanceSearch input[id^='param']").prop("disabled", true);

これは、冗長性なしで同じことを行います。

于 2012-05-08T03:59:26.477 に答える
1

これを試して:

$('table.advanceSearch ul.form input[id^="param"]').prop('disabled', true);

また

$('table.advanceSearch ul.form').find('input[id^="param"]').prop('disabled', true);

また

$('table.advanceSearch ul.form li').children('input[id^="param"]').prop('disabled', true);
于 2012-05-08T03:56:33.617 に答える