0

尝试获取所有带有“testclass”类的复选框以检查它们是否被选中,如果是,则将它们的值添加到 theString。

   $('.testclass').each(function () {

        if (this.checked) {   

            var x = this.val();

            theString += x + ";";

         }

   });

它似乎被卡在获得 val 的部分?

4

9 回答 9

1

你的问题

您的代码的问题this是 DOM 元素而不是 jQuery 对象。你需要改变

var x = this.val();

var x = this.value;
//or
var x = $(this).value; //slower

更好的解决方案

您可以:checked在选择器中使用来获取选中的复选框。您可以使用map()来获取值。

var values = $(".testclass:checked")  //get the checked checkboxes
    .map(function () {                //Map loops through each element in the jQuery object produces a new jQuery object containing the return values. 
        return this.value;
    })
    .get()                            //gets the newly created array
    .join(",");                       //joins the array with commas as a seperator
于 2013-06-04T05:09:25.530 回答
1

您可以使用:checkedwith class.testclass来获取具有特定类的已检查元素:

$('.testclass:checked').each(function() {
   console.log(this.value)
});

刚刚看到代码,看来你的问题是这样的:

this.val();

尝试更改为:

this.value

或者

$(this).val(); //<---------jQuery version
于 2013-06-04T05:11:17.583 回答
0

不使用 jQuery :

 checkedList = [].slice.call (document.querySelectorAll ('.testclass:checked'))
                       .map (function (el) { return el.value; })
                       .join (';');

演示在http://jsfiddle.net/jstoolsmith/AeXWs/

于 2013-06-04T05:40:39.647 回答
0

尝试

var values = $('.testclass:checked').map(function(idx, el) {
    return $(el).val()
}).get();
于 2013-06-04T05:14:28.740 回答
0

使用$.map

尝试这个

var theString=$('.testclass:checked').map(function(n){
     return this.value;
}).get().join(',');  //get the checked value and join it with ,
alert(theString);

theString 将包含所有检查的值...

于 2013-06-04T05:10:37.257 回答
0

尝试以下代码以获取所有选中的复选框值

 $('.testclass:checked').each(function () {

            var x = this.val();

            theString += x + ";";

   });
于 2013-06-04T05:10:55.053 回答
-1

请看一下http://jsfiddle.net/2dJAN/54/

$('.check').on("click",function(){
    $.each($('.testclass'), function(){
        if($(this).is(':checked')){
          alert($(this).val());
        }
    });
});
于 2013-06-04T05:12:56.170 回答
-1

尝试

  $('.testclass:checked').each(function() {
      alert(($(this).value)) 
  });
于 2013-06-04T05:07:14.667 回答
-1
 var theString = "":

 $('.testclass').each(function () {

        if ($(this).checked) {   

            theString += $(this).val()+";";

         }    

   });

更新:我的错,错过了问题的一部分,你也需要价值观。

于 2013-06-04T05:10:44.490 回答