1

動的に作成されるテーブル行があるため、ID やクラスを追加する制御がありません。行は、テーブル内で任意の順序で表示できます。各行には、列 (​​td) のみが含まれます。

更新日 2012 年 8 月 31 日 18:55

以下は、html がどのように見えるかのサンプルです。

<table id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList">
   <tr>
      <td>
         <p>
         <span style="font-size:1.1em"><span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoTypeText" style="font-weight:bold;">Subject Area</span></span>
         <br />
         <span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoText">BS, AP</span>
         </p>
      </td>
   </tr>
   <tr>
      <td>
         <p>
         <span style="font-size:1.1em"><span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl01_lblCourseInfoTypeText" style="font-weight:bold;">Course Content</span></span>
         <br />
         <span id="ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl01_lblCourseInfoText">some more text</span>
         </p>
      </td>
   </tr>
</table>

「サブジェクト エリア」が表示される行を非表示にする方法はありますか?

4

3 に答える 3

1

を使用すると、DOM ツリー.closest('tr')の次のタグが取得されます。<tr>

$('#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList_ctl00_lblCourseInfoTypeText').closest('tr').hide();

の代わりに、またはなど.hide()を使用できます.slideUp().fadeOut().remove()

于 2012-08-31T14:31:14.453 に答える
0

私は間違っているかもしれませんが、私は自分の質問に答えることができると思います:S

$("#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList tr:contains('Subject Area')").hide();

これはもう少し選択的であり、実際に必要な「サブジェクト エリア」の他のインスタンスをキャッチする可能性は低くなります。

$("#ctl00_MainContentPlaceholder_ctl00_CourseInfoTextList span:contains('Subject Area')").closest('tr').hide();

ここでは、contains 関数を発見することが重要でした。ありがとうございます :)

于 2012-08-31T18:15:38.790 に答える
0

Dunhamzzz は正しく、最も近い作品は素晴らしい (+1) です。

余談ですが、ASP.NET Web フォームは非常に長い動的 ID 名を作成します。JS の<%= Whatever.ClientID %>内部に配置する (バックエンドとフロントエンドを混在させる) という考えは、私にはばかげています。

代わりにfromセレクターを使用して、JS をきれいに保ちます。

$('[id$="lblCourseInfoTypeText"]').closest('tr').hide();
// ^= means search from the end - and voila
于 2012-08-31T14:33:49.100 に答える