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

For add class for div <div class="form-group"> i use code:

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

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

But code isnt working. Tell me please where error in my code?

4

6 回答 6

2

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

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

或者包装原生 DOM 方法:

$(document.getElementsByName(FindName))
于 2013-09-11T21:01:47.360 回答
1

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

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

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

$("input[name=" + FindName + "]").parent().removeClass("test").addClass("test2");
于 2013-09-11T21:01:14.703 回答
1

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

尝试这个:

$("input[name='"+FindName+"']").parent().removeClass("test").addClass("test2");
于 2013-09-11T21:01:22.810 回答
0

字符串合并:

var FindName = 'test1';

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

另一方面,为什么不只是:

$('#'+findName).closest('div').removeClass("test").addClass("test2");
于 2013-09-11T21:01:27.857 回答
0

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

$("input[name='"+FindName+"']").parent().removeClass("test").addClass("test2");
于 2013-09-11T21:01:50.713 回答
0

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

$("input[name="+ FindName +"]").parent().removeClass("test").addClass("test2");
于 2013-09-11T21:02:08.450 回答