嘗試獲取具有類「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的部分?
嘗試
$('.testclass:checked').each(function() {
alert(($(this).value))
});
因爲這會提醒未定義,它不會回答問題。 – epascarello
您的問題
的問題與您的代碼是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
使用$.map
試試這個
var theString=$('.testclass:checked').map(function(n){
return this.value;
}).get().join(','); //get the checked value and join it with ,
alert(theString);
theString將所有的檢查值commaseperated ...
var theString = "":
$('.testclass').each(function() {
if ($(this).checked) {
theString += $(this).val()+";";
}
});
UPDATE:我不好,錯過了問題的一部分,你也需要價值。
這與讀取值有什麼關係! – epascarello
@epascarello仔細閱讀:我們正在談論CHECKBOXES。閱讀他們的價值觀是無用的。你需要他們的狀態。 –
哪一個.checked會告訴你它是否被選中,你仍然可以讀取它們的值並且收集那些像OP所要檢查的值。你改變OP的要求! – epascarello
試試下面的代碼得到所有選中的複選框值
$('.testclass:checked').each(function() {
var x = this.val();
theString += x + ";";
});
仍然行不通!誰upvoted誰錯過了錯誤! – epascarello
您可以使用:checked
與.testclass
類來獲得與特定的類爲選中的元素:
$('.testclass:checked').each(function() {
console.log(this.value)
});
剛剛看到的代碼,它似乎你的問題是這樣的:
this.val();
try c掛任本:
this.value
或
$(this).val(); //<---------jQuery version
請看看http://jsfiddle.net/2dJAN/54/
$('.check').on("click",function(){
$.each($('.testclass'), function(){
if($(this).is(':checked')){
alert($(this).val());
}
});
});
嘗試
var values = $('.testclass:checked').map(function(idx, el) {
return $(el).val()
}).get();
不使用jQuery:
checkedList = [].slice.call (document.querySelectorAll ('.testclass:checked'))
.map (function (el) { return el.value; })
.join (';');
你必須希望瀏覽器支持,querySelector和map。 ;) – epascarello
同意,但所有流行的當前瀏覽器都這樣做。除非使用polyfill,否則請參閱http://caniuse.com/#search=querySelector – HBP
使用[IE8](http://kangax.github.io/es5-compat-table/#Array.prototype.map)映射失敗。 EOL很快! WOHOOO – epascarello
嘗試:看看的CSS:檢查選擇,比如「.testclass:檢查」,那麼請在。每。 – Chris