Javascript 检查jquery所选对象数组中的元素名称
我是js和jquery库的初学者。我希望获得一个具有特定名称的输入字段数组,并验证输入。我的每个输入字段都有一个名称,如NS[0]、NS[1]等。字段的总数必须由代码确定,因为字段是由javascript生成的 我知道我可以让jquery处理单个对象,如下所示: $input[name=NS\\[0\\]].val用于 但是,我如何获得所有这些相似元素的数组,从NS[0]到NS[x],其中x必须根据生成的字段数量来确定?我已经有其他具有不同名称模式的字段共享同一个css类,所以使用类不是一个选项。这些框位于特定的div区域中,但在同一区域中还有其他输入字段,因此选择同一区域的所有输入框也会选择它们 换句话说,在获取整个输入字段数组之后,如何使用jquery检查每个输入字段的名称,以检查每个单独的名称 由于在由表id CNTR1确定的区域中有各种名称的输入字段,因此我将使用$'CNTR1 input'选择它们。我还可以使用$input[name=]选择各个字段。但是,我想做的是选择$'CNTR1 input'下的所有内容,然后对它们的名称运行一个循环,检查名称是否符合预定的条件。我该怎么做 html代码:Javascript 检查jquery所选对象数组中的元素名称,javascript,jquery,Javascript,Jquery,我是js和jquery库的初学者。我希望获得一个具有特定名称的输入字段数组,并验证输入。我的每个输入字段都有一个名称,如NS[0]、NS[1]等。字段的总数必须由代码确定,因为字段是由javascript生成的 我知道我可以让jquery处理单个对象,如下所示: $input[name=NS\\[0\\]].val用于 但是,我如何获得所有这些相似元素的数组,从NS[0]到NS[x],其中x必须根据生成的字段数量来确定?我已经有其他具有不同名称模式的字段共享同一个css类,所以使用类不是一个选项
<table class="table" id="cnservers">
<thead>
<tr>
<th>Type</th>
<th>Preference</th>
<th>Value</th>
<th>Name</th>
</tr>
</thead>
<tr id="CNTR0">
<td>CNAME</td><td><input type="text" name="CN_PREF[0]" value=""></td><td>
<input type="text" name="CN_VAL[0]" value=""></td><td>
<input type="text" name="CN_NAME[0]" value="">
<a class="btn btn-danger" onclick="DelField(this.id);" id="CN_D0" >
<span class="btn-label">Delete
</span>
</a>
<a class="btn btn-primary" onclick="addField('cnservers','CN',10);" id="CN_A0" >
<span class="btn-label">Add
</span>
</td></tr>
</table>
[1]: http://i.stack.imgur.com/bm0Jq.jpg
使用jQuery的方法,并使用筛选函数:
filterCritera = /^CN_NAME\[/; // or whatever your criteria is
var inputs = $('#CNTR0 input');
// you could also cache this filter in a variable
inputs.filter(function(index){
return filterCritera.test(this.name);
}).css('background','red');
您发布的标记与问题中描述的标记不符,它不包含NS[0],但您可以在上面的常规表达式中替换它。试试这个
HTML
}) 我一定错过了什么。有没有什么理由你不能使用这个软件 关于, 但是,我想做的是选择$'CNTR1 input'下的所有内容,然后对它们的名称运行一个循环,检查名称是否符合预定的条件。我该怎么做 编辑1: id仍然是html元素的一个属性。所以您可以执行$'[id^=CNTR1]'。。。元素的id属性的值不包含。它只是css/jquery选择器的一部分。使用属性样式选择器时,不需要它。虽然我不能评论这部电影的表现
理想情况下,您希望将第二个类(比如js cntr)附加到以cntr开头的id创建的所有元素。尽管不同的名称模式元素可能已经有一个类,但该类用于样式设置。没有什么能阻止您通过js附加纯粹用于选择的自定义类。这是一个公认的做法,这就是为什么类名以js-开头,表示它纯粹是通过js用于选择的。您的标记无效。请包含包装表元素,并关闭tr。代码的JSFIDLE也会有所帮助。我如何处理CNTR1的开头,寻找类似^CNTR的内容。这样的事情存在吗?
<table id="CNTR1">
<tr>
<td>CNAME</td>
<td><input type="text" name="CN_PREF[1]" id="CN_IN[1]"></td>
<td><input type="text" name="CN_VAL[1]"></td>
<td><input type="text" name="CN_NAME[1]"></td>
</tr>
</table>
$(document).ready(function(){
$("#CNTR1 input").each(function() {
console.log($(this).attr("name"));
// Match With predetermined criteria
});
$('#CNTR1').find('input[name^="NS"]')
$("#CNTR1 input").each(function(index, elem) {
var $elem = $(elem),
name = $elem.attr('name');
var nameMatchesCondition = true; // replace with your condition
if (nameMatchesCondition) {
// do something!
}
});