使用jQuery使用checked复选框的值填充span

时间:2011-01-26 07:13:14

标签: javascript jquery

假设我有下面的html。最有效的方法是什么?

复选框列表可以增加到数百个,因此保持它很小很重要

<span class="text"></span>
<div class="allboxes">
  <input type="checkbox" value="a">
  <input type="checkbox" value="b">
  <input type="checkbox" value="c">
  <input type="checkbox" value="d">
</div>

// on click of a checkbox, span should be populated by the checked boxes
// <span class="text">a b d</span>

4 个答案:

答案 0 :(得分:2)

<span class="text"></span>
<div class="allboxes">
  <input type="checkbox" value="a">
  <input type="checkbox" value="b">
  <input type="checkbox" value="c">
  <input type="checkbox" value="d">
</div>

jquery part

var n = jQuery("div.allboxes :checkbox").map(function(){ 
         return jQuery(this).val();}).get().join(" ");
alert(n);

工作示例here

答案 1 :(得分:1)

jQuery('input:checked')

修复HTML。您不能在属性值之间使用逗号。

答案 2 :(得分:1)

清理html:

<span class="text"></span>
<div class="allboxes">
  <input type="checkbox" value="a">
  <input type="checkbox" value="b">
  <input type="checkbox" value="c">
  <input type="checkbox" value="d">
</div>

然后你可以这样做:

$('.allboxes input').change(function() {
    var whichSelected = [];
    $.each($('.allboxes input:checked'), function(a,b) {
        whichSelected.push($(b).val());
    });
    $('.text').text(whichSelected.join(' '));
});

小提琴:http://jsfiddle.net/amirshim/sDDps/3/

答案 3 :(得分:1)

我建议避免解析所有复选框。使用全局数组存储要在span中填充的值。

var globalvar = new Array();
function populate(obj){
 globalvar .push( obj.value));
 $('.text').text(globalvar.join(' '));
}

将html制作如下。或运行一些函数只插入一次这些函数。

<span class="text"></span>
<div class="allboxes">
  <input type="checkbox" value="a" onclick="populate(this)">
  <input type="checkbox" value="b" onclick="populate(this)">
  <input type="checkbox" value="c" onclick="populate(this)">
  <input type="checkbox" value="d" onclick="populate(this)">
</div>
相关问题