我正在尝试添加一个类来动态添加输入元素。
$(function(){
//the elements that are added dynamically.
$('#addItem').click(function(){
var form = "<tr id='"+i+"'><td>Quantity</td>
<td><input class='qty quan total chk'
type='text' id='qty["+i+"]'
name='qty["+i+"]'>
</td>";
});
//when user click submitThis button, this checks for blanks
$(document).on('click','#submitThis',function(){
var error = 0;
$(".chk").each(function(){
var id = $(this).attr('id');
if ($(this).val().length < 1){
$('#'+id).addClass('error');
error++;
}
});
});
我猜测这似乎失败了因为var id包含括号并且得到了所有的bug。输入需要是表格帖子的数组,因为它可能是大量的输入,并且在处理方面更容易。我知道元素被正确添加并且我正在正确地听,因为如果我在addClass之后做一个警报我看到输入的值如果我添加一些数据,所以这对我来说没有意义为什么没有添加类。该类将添加到未动态添加的其他字段中。我知道if语句返回true。
答案 0 :(得分:1)
您已经拥有了您尝试选择的元素(this
),只需使用它。
$(this).addClass('error');
交替你可以转义括号
$('#'+id.replace('[','\\[').replace(']','\\]')).addClass('error');