选择子输入元素' CSS类

时间:2018-04-24 22:02:49

标签: jquery radiobuttonlist

我点击按钮后,使用以下选择器在输入元素上设置/删除已禁用的属性:

<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>

我目前面临的问题是.NET以一种可怕的方式呈现RadioButtonLists:

    var x = face.vertexNormals[j].x;
    var y = face.vertexNormals[j].y;
    var z = face.vertexNormals[j].z;

所以,jQuery选择器正在上面的例子中找到输入,因为&#34; cascadeReset&#34; class被应用于表,而不是输入,它不会忽略它,因此正在删除&#34;禁用&#34;标签

现在,在任何人建议之前 - 不,我不能添加CSS类&#34; cascadeReset&#34;到输入元素。我看起来远远不够,.NET似乎并没有提供一种方法。我能做的最接近的是用带有类的span标签包装输入。

尽管如此,在我看来好像我应该能够修改我的jQuery选择器以某种方式仍然排除输入。

有什么想法吗?我能想到的最接近的是以某种方式告诉选择器查看父元素,但是A)我不确定如何编写它,并且B)它让我觉得很容易让这个适得其反并结束忽略了我不喜欢的元素。

1 个答案:

答案 0 :(得分:0)

它可能是非常不可信的(至少在理论上;在一个小页面上它可能无关紧要)但你可以限制像.cascadeReset的孩子那样的输入:

$("input").not(".cascadeReset input");

适用于您的具体情况:

var parentElement = $("#startingClass");
parentElement.find(":input").not(".dont-enable").not(".cascadeReset input").removeAttr('disabled');