尝试获取所有带有“testclass”类的复选框以检查它们是否被选中,如果是,则将它们的值添加到 theString。
$('.testclass').each(function () {
if (this.checked) {
var x = this.val();
theString += x + ";";
}
});
它似乎被卡在获得 val 的部分?
尝试获取所有带有“testclass”类的复选框以检查它们是否被选中,如果是,则将它们的值添加到 theString。
$('.testclass').each(function () {
if (this.checked) {
var x = this.val();
theString += x + ";";
}
});
它似乎被卡在获得 val 的部分?
你的问题
您的代码的问题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
您可以使用:checked
with class.testclass
来获取具有特定类的已检查元素:
$('.testclass:checked').each(function() {
console.log(this.value)
});
刚刚看到代码,看来你的问题是这样的:
this.val();
尝试更改为:
this.value
或者
$(this).val(); //<---------jQuery version
不使用 jQuery :
checkedList = [].slice.call (document.querySelectorAll ('.testclass:checked'))
.map (function (el) { return el.value; })
.join (';');
尝试
var values = $('.testclass:checked').map(function(idx, el) {
return $(el).val()
}).get();
使用$.map
尝试这个
var theString=$('.testclass:checked').map(function(n){
return this.value;
}).get().join(','); //get the checked value and join it with ,
alert(theString);
theString 将包含所有检查的值...
尝试以下代码以获取所有选中的复选框值
$('.testclass:checked').each(function () {
var x = this.val();
theString += x + ";";
});
请看一下http://jsfiddle.net/2dJAN/54/
$('.check').on("click",function(){
$.each($('.testclass'), function(){
if($(this).is(':checked')){
alert($(this).val());
}
});
});
尝试
$('.testclass:checked').each(function() {
alert(($(this).value))
});
var theString = "":
$('.testclass').each(function () {
if ($(this).checked) {
theString += $(this).val()+";";
}
});
更新:我的错,错过了问题的一部分,你也需要价值观。