为什么addClass不工作?

时间:2013-09-11 20:58:54

标签: jquery

<div class="form-group">
    <label class="control-label" for="test1"></label>
    <input type="text" name="test1" class="form-control test1" id="test1" placeholder="" width="200">
</div>

对于div <div class="form-group">的添加类,我使用代码:

var FindName = arr[i].name; //test1

$("input[name=FindName]").parent().removeClass("test").addClass("test2");

但代码不起作用。请告诉我,我的代码中的错误在哪里?

6 个答案:

答案 0 :(得分:2)

input[name=FindName]匹配name属性字面意义为字符串FindName的元素。如果要使用FindName变量,请构造一个新的选择器:

$('input[name="' + FindName + '"]')

或者包装原生DOM方法:

$(document.getElementsByName(FindName))

答案 1 :(得分:1)

您正试图以错误的方式使用该变量。试试这个:

$("input[name=test1]").parent().removeClass("test").addClass("test2");

或者,如果必须使用该变量,请将其连接起来:

$("input[name=" + FindName + "]").parent().removeClass("test").addClass("test2");

答案 2 :(得分:1)

修复变量的连接。如果FindName是变量,则需要将其连接到选择器。

试试这个:

$("input[name='"+FindName+"']").parent().removeClass("test").addClass("test2");

答案 3 :(得分:0)

string concentanation:

var FindName = 'test1';

$("input[name='"+FindName+"']").parent().removeClass("test").addClass("test2");

另一方面,为什么不呢:

$('#'+findName).closest('div').removeClass("test").addClass("test2");

答案 4 :(得分:0)

因为您使用变量FindName作为常量字符串,请尝试将其更改为:

$("input[name='"+FindName+"']").parent().removeClass("test").addClass("test2");

答案 5 :(得分:0)

您没有正确选择输入标签。输入标记的名称设置为“test1”

$("input[name="+ FindName +"]").parent().removeClass("test").addClass("test2");
相关问题