2013-06-04 34 views
0

嘗試獲取具有類「testclass」的所有複選框以檢查它們是否被選中,如果是,則將它們的值添加到theString。獲得所有複選框的值爲一個類

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

     if (this.checked) { 

      var x = this.val(); 

      theString += x + ";"; 

     } 

    }); 

它似乎陷入了獲得val的部分?

+0

嘗試:看看的CSS:檢查選擇,比如「.testclass:檢查」,那麼請在。每。 – Chris

回答

-1

嘗試

$('.testclass:checked').each(function() { 
     alert(($(this).value)) 
    }); 
+0

因爲這會提醒未定義,它不會回答問題。 – epascarello

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 
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將所有的檢查值commaseperated ...

-1
var theString = "": 

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

     if ($(this).checked) { 

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

     }  

    }); 

UPDATE:我不好,錯過了問題的一部分,你也需要價值。

+0

這與讀取值有什麼關係! – epascarello

+0

@epascarello仔細閱讀:我們正在談論CHECKBOXES。閱讀他們的價值觀是無用的。你需要他們的狀態。 –

+0

哪一個.checked會告訴你它是否被選中,你仍然可以讀取它們的值並且收集那些像OP所要檢查的值。你改變OP的要求! – epascarello

0

試試下面的代碼得到所有選中的複選框值

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

      var x = this.val(); 

      theString += x + ";"; 

    }); 
+0

仍然行不通!誰upvoted誰錯過了錯誤! – epascarello

1

您可以使用:checked.testclass類來獲得與特定的類爲選中的元素:

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

剛剛看到的代碼,它似乎你的問題是這樣的:

this.val(); 

try c掛任本:

this.value 

$(this).val(); //<---------jQuery version 
-1

請看看http://jsfiddle.net/2dJAN/54/

$('.check').on("click",function(){ 
    $.each($('.testclass'), function(){ 
     if($(this).is(':checked')){ 
      alert($(this).val()); 
     } 
    }); 
}); 
+0

哈哈..多重檢查!!!!! P.S我沒有downvoted –

+0

@downvoter ..請留下評論!!! –

+0

我可否知道投稿的原因? – vinothini

0

嘗試

var values = $('.testclass:checked').map(function(idx, el) { 
    return $(el).val() 
}).get(); 
0

不使用jQuery:

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

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

+0

你必須希望瀏覽器支持,querySelector和map。 ;) – epascarello

+0

同意,但所有流行的當前瀏覽器都這樣做。除非使用polyfill,否則請參閱http://caniuse.com/#search=querySelector – HBP

+0

使用[IE8](http://kangax.github.io/es5-compat-table/#Array.prototype.map)映射失敗。 EOL很快! WOHOOO – epascarello

相關問題