ASP.NET TreeView コントロールがあり、特定の時点で CSS クラスがspan
要素に追加され、クライアント側のコードにツリーのチェックボックスを無効にするよう警告します。完了し、動作しています。
問題は、CSS
クラスがチェックボックスを無効にするフラグとして機能し、削除する必要があることです。これを実行する jQuery は簡単に見えます。
私は次を読みましたが、それは明白な解決策のように思えました: jQuery Remove CSS Class from all Descendants at once
これがレンダリングされたソースです (その一部 - TreeView は巨大です。これらの<span>
要素が TreeView の子孫であることを知っておいてください:
<div id="MainContent_MyTreeView">
.....
<span class="disabledTreeviewNode">
したがって、このクラスを削除する必要があるときにクライアント側にjQuery
ヒットする次のものがあります。
function EnableAllCheckBoxes(treeviewClientID) {
$(treeviewClientID).removeClass('disabledTreeviewNode');
}
次のようなバリエーションも試しました。
$(treeviewClientID + ' span').removeClass('disabledTreeviewNode');
と:
$(treeviewClientID + ' span').removeClass();
と:
$(treeviewClientID).removeClass();
残念ながら、ページを調べて jQuery を実行しても、クラスは削除されていません。
<div id="MainContent_MyTreeView" onclick="OnTreeClick(event)">
<table style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;" cellspacing="0" cellpadding="0">
<div id="MainContent_MyTreeViewn0Nodes" style="display: block;">
<table style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px;" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<td>
<td>
<input name="MainContent_MyTreeViewn1CheckBox" id="MainContent_MyTreeViewn1CheckBox" type="checkbox"/>
<span id="MainContent_MyTreeViewst1" style="font-weight: bold; text-decoration: none;">
<span class="disabledTreeviewNode">
Text - My Description
削除する必要があるクラスは、その下部に次のとおりです<span>
<span class="disabledTreeviewNode">
また、次のことも試しましたが、どちらも機能しませんでした。
**$(treeviewClientID + ' span').filter(function () {
return $(this);
}).removeClass('disabledTreeviewNode');**
値treeviewClientID
が正しく機能するようにツリーの他の部分を操作するために使用したため、値は正しいです。
TreeView コントロールの子要素でそのクラスが削除されない理由<span>
、または間違っている可能性があることについて何か考えはありますか?
編集:<span>
クラスが削除されていない完全な HTML を追加しました。