使用jquery

时间:2016-10-06 17:28:31

标签: javascript jquery html html5

我有两个名为etapes的复选框。我想获取所有已检查etapes的值,并将其存储在一个字符串中。

试过这个:

$('[name="etapes"]:checked').each(function() {
    indexer = indexer + 1;
    if (indexer == 1) selectedEtapes = $(this).val();
    else selectedEtapes = selectedEtapes + "," + $(this).val();
});

但它不起作用。那我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

更简单的解决方案是使用jQuery.map

var mapped = $('[name="etapes"]:checked').map(function() {
  return this.value;
}).get();
console.log(mapped.join(','));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="checkbox" name="etapes" value="Ouverte1" checked>
<input type="checkbox" name="etapes" value="Ouverte2">
<input type="checkbox" name="etapes" value="Ouverte3" checked>

修复您的代码:

您从未接受index参数,

var selectedEtapes = '';
$('[name="etapes"]:checked').each(function(index) {
  if (!index) selectedEtapes += $(this).val();
  else selectedEtapes += "," + $(this).val();
});

答案 1 :(得分:1)

您可以使用map()方法执行此操作,如下所示。

&#13;
&#13;
var str = $('[name="etapes"]:checked').map(function() {
        return $(this).val();
    }).get().join();

console.log(str)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="etapes" value="Ouverte1" checked="checked">
<input type="checkbox" name="etapes" value="Ouverte2">
<input type="checkbox" name="etapes" value="Ouverte3" checked="checked">
<input type="checkbox" name="etapes" value="Ouverte4" checked="checked">
&#13;
&#13;
&#13;