Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查jquery所选对象数组中的元素名称_Javascript_Jquery - Fatal编程技术网

Javascript 检查jquery所选对象数组中的元素名称

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类,所以使用类不是一个选项

我是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代码:

<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!
    }   
});