jquery / javascript:如果tr有某个类,则添加到数组

时间:2014-07-25 10:32:17

标签: javascript jquery arrays class push

我有一个动态的html表:

<table>
<tbody>
<tr>
<td>Name</td>
<td>City</td>
</tr> 
<tr class="new" id="item1">
<td><input class="names" value="John Smith" type="hidden">John Smith</td>
<td><input class="cities" value="London" type="hidden">London</td>
</tr>
<tr class="normal" id="item2">
<td><input class="names" value="Regina Mills" type="hidden">Regina Mills</td>
<td><input class="cities" value="Berlin" type="hidden">Berlin</td>
</tr>
<tr class="normal" id="item3">
<td><input class="names" value="Marcus Bell" type="hidden">Marcus Bell</td>
<td><input class="cities" value="Liverpool" type="hidden">Liverpool</td>
</tr>
</tr>
</tbody>
</table>

从我的js文件中我以这种方式存储信息:

     var arrayNames = [];
        $(".names").each(function(){
            arrayNames.push($(this).val());
        })

         var arrayCities = [];
        $(".cities").each(function(){
            arrayCities.push($(this).val());
        })

 params += '&names='+arrayNames;
 params += '&cities='+arrayCities;

有了这个我进入我的php:

$_REQUEST['names']
: string = John Smith,Regina Mills,Marcus Bell
$_REQUEST['cities']
: string = London,Berlin,Liverpool

但是当表tr中的类是&#34; new&#34;

时,我只需要$ _REQUESTs中的值

我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以尝试

$(".names").each(function(){
        if ($( this ).parent().attr( "class" ) == "new")
            arrayNames.push($(this).val());
        })

答案 1 :(得分:0)

只需定位.names内的.new即可。您可以使用map()获取值:

var arrayNames = $('.new .names').map(function() { return this.value; }).get();

..并为.cities

做同样的事情