通过jQuery函数划分数据对

时间:2013-11-15 06:14:31

标签: javascript jquery

使用jQuery,我想选择一些数据并用分隔符划分对。

我的代码:

var checkboxes = [];
$('input[name="CheckBox3"]:checked,select[name=ansprechpartner]').each(function() {
    checkboxes.push($(this).val());
    checkboxes.push(":");
});

代码输出:

1998,:,1292,2006,:,1128,2630,:,3030,:

所需的代码输出:

1998:1292,2006:1128,2630:3030 

示例HTML

<tr class="Row">
    <td style="TEXT-ALIGN: right">
        <input type="checkbox" id="kontakteCheckBox3" class="idRow" value="2006" name="CheckBox3">&nbsp;</td>
    <select id="ansprechpartner" class="ansprechpartner" name="ansprechpartner">
        <option selected value="">-</option>
        <OPTION VALUE="1292">Abels</OPTION>
        <OPTION VALUE="1295">Delta</OPTION>
        <OPTION VALUE="1298">Extra</OPTION>
    </select>
    </td>
</tr>

<tr class="Row">
    <td style="TEXT-ALIGN: right">
        <input type="checkbox" id="kontakteCheckBox3" class="idRow" value="2008" name="CheckBox3">&nbsp;</td>
    <select id="ansprechpartner" class="ansprechpartner" name="ansprechpartner">
        <option selected value="">-</option>
        <OPTION VALUE="1392">Abels</OPTION>
        <OPTION VALUE="1495">Delta</OPTION>
        <OPTION VALUE="1198">Extra</OPTION>
    </select>
    </td>
</tr>

我不知道如何修复它。

谢谢

2 个答案:

答案 0 :(得分:0)

使用

var checkboxes = $('input[name="CheckBox3"]:checked').map(function () {
    return this.value + ':' + $(this).closest('tr').find('select').val();
}).get();
var str = checkboxes.join(':')

答案 1 :(得分:0)

修订解决方案

基于提供的html,遍历父行

var output=$('input[name="CheckBox3"]:checked').map(function(){
    var selVal=$(this).closest('tr').find('select[name=ansprechpartner]').val() | 0;
  return  this.value +':'+ selVal;
}).get().join()

DEMO