选择子输入元素' CSS class
Selecting child input elements' CSS class
我正在使用以下选择器 set/remove 在我的输入元素上禁用属性,点击按钮时:
var parentElement = $("#startingClass");
parentElement.find(":input").not(".dont-enable").not(".cascadeReset").removeAttr('disabled');
我目前面临的问题是 .NET 以糟糕的方式呈现 RadioButtonLists:
<div id="startingClass">
<table class="cascadeReset" id="tableID">
<tbody>
<tr>
<td>
<input name="generatedID" disabled="disabled" id="generatedID" type="radio" value="12">
<label for="generatedID">Alternate</label>
</td>
</tr>
</tbody>
</table>
</div>
所以,jQuery 选择器在上面的例子中找到输入,因为 "cascadeReset" class 被应用到 table,而不是输入,它并没有忽略它,因此正在删除 "disabled" 标签。
现在,在任何人建议之前 - 不,我无法将 CSS class "cascadeReset" 添加到输入元素。我看得很远,.NET 似乎没有提供这样做的方法。我能做的最接近的事情是用一个带有 class.
的 span 标签包装输入
不过,在我看来我应该能够修改我的 jQuery 选择器以某种方式仍然排除输入。
有什么想法吗?我能想到的最接近的方法是以某种方式告诉选择器查看父元素,但是 A) 我不确定如何编写它,并且 B) 我觉得很容易适得其反并最终忽略我宁愿不要的元素。
它的性能可能非常差(至少理论上是这样;在小页面上它可能无关紧要)但是您可以像这样限制 .cascadeReset 的子项的输入:
$("input").not(".cascadeReset input");
适用于您的具体情况:
var parentElement = $("#startingClass");
parentElement.find(":input").not(".dont-enable").not(".cascadeReset input").removeAttr('disabled');
我正在使用以下选择器 set/remove 在我的输入元素上禁用属性,点击按钮时:
var parentElement = $("#startingClass");
parentElement.find(":input").not(".dont-enable").not(".cascadeReset").removeAttr('disabled');
我目前面临的问题是 .NET 以糟糕的方式呈现 RadioButtonLists:
<div id="startingClass">
<table class="cascadeReset" id="tableID">
<tbody>
<tr>
<td>
<input name="generatedID" disabled="disabled" id="generatedID" type="radio" value="12">
<label for="generatedID">Alternate</label>
</td>
</tr>
</tbody>
</table>
</div>
所以,jQuery 选择器在上面的例子中找到输入,因为 "cascadeReset" class 被应用到 table,而不是输入,它并没有忽略它,因此正在删除 "disabled" 标签。
现在,在任何人建议之前 - 不,我无法将 CSS class "cascadeReset" 添加到输入元素。我看得很远,.NET 似乎没有提供这样做的方法。我能做的最接近的事情是用一个带有 class.
的 span 标签包装输入不过,在我看来我应该能够修改我的 jQuery 选择器以某种方式仍然排除输入。
有什么想法吗?我能想到的最接近的方法是以某种方式告诉选择器查看父元素,但是 A) 我不确定如何编写它,并且 B) 我觉得很容易适得其反并最终忽略我宁愿不要的元素。
它的性能可能非常差(至少理论上是这样;在小页面上它可能无关紧要)但是您可以像这样限制 .cascadeReset 的子项的输入:
$("input").not(".cascadeReset input");
适用于您的具体情况:
var parentElement = $("#startingClass");
parentElement.find(":input").not(".dont-enable").not(".cascadeReset input").removeAttr('disabled');