Атрыманне вала для ўсіх праверкі ў штучны ўпакоўцы з класам

Спроба атрымаць усе галачкі з класам «TestClass», каб праверыць, калі яны правяраюцца, калі так, то дадайце іх значэнне theString.

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

        if (this.checked) {   

            var x = this.val();

            theString += x + ";";

         }

   });

Быццам бы затрымацца ў той частцы, дзе ён атрымлівае Вэла?

0
паспрабуйце наступнае: Паглядзіце на CSS: праверана селектар, як «.testclass: праверана», то не .each на гэтым.
дададзена аўтар Chris, крыніца

9 адказы

Please have a look at http://jsfiddle.net/2dJAN/54/

$('.check').on("click",function(){
    $.each($('.testclass'), function(){
        if($(this).is(':checked')){
          alert($(this).val());
        }
    });
});
1
дададзена
Ці магу я даведацца прычыну ўніз галасаваць за гэты пост.
дададзена аўтар vinothini, крыніца
Haahh..multiple чэкі !!!!! P.S Я не downvoted
дададзена аўтар ꜱᴜʀᴇꜱʜ ᴀᴛᴛᴀ, крыніца
@downvoter ..please пакідаць каментары !!!
дададзена аўтар ꜱᴜʀᴇꜱʜ ᴀᴛᴛᴀ, крыніца
Таму што гэта дрэнная практыка выкарыстання $ (гэта) зноў і зноў, і не будуе радок.
дададзена аўтар epascarello, крыніца

спрабаваць

  $('.testclass:checked').each(function() {
      alert(($(this).value)) 
  });
1
дададзена
Таму што гэта будзе апавяшчаць няпэўны і не дае адказ на пытанне.
дададзена аўтар epascarello, крыніца

Вы можаце выкарыстоўваць : праверана з класам .testclass , каб атрымаць правераныя элементы з пэўным класам:

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

толькі што бачыў код, і здаецца, што ваша праблема заключаецца ў наступным:

this.val();

паспрабуйце змяніць альбо да гэтага:

this.value

або

$(this).val(); //<---------jQuery version
1
дададзена

<�Моцны> Ваша задача

Праблема з кода гэта з'яўляецца DOM элемент, а не аб'ект JQuery. Вы павінны былі б змяніць

var x = this.val();

у

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

<�Моцны> Better рашэнне

You can use :checked in your selecуr у get the checkboxes that are selected. You can than use map() у get the values.

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 seperaуr
1
дададзена
 var theString = "":

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

        if ($(this).checked) {   

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

         }    

   });

UPDATE: Мой дрэнна, прапусціў частка пытання, дзе неабходнага значэння таксама.

1
дададзена
Як гэта нават ставіцца да чытання значэння!
дададзена аўтар epascarello, крыніца
Які .Checked скажа вам, калі ён усталяваны, вы можаце чытаць іх значэння і сабраць тыя, якія правяраюцца, як АП хацеў. Вы можаце змяніць патрабаванне да OP яшчэ!
дададзена аўтар epascarello, крыніца
да гэтага часу не так, theString заўсёды будзе роўны "" .
дададзена аўтар epascarello, крыніца
@epascarello прачытайце ўважліва: мы гаворым пра сцяжкі. Чытанне іх значэння бескарысна. Вы павінны іх стан.
дададзена аўтар David Jashi, крыніца

спрабаваць

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

Паспрабуйце ніжэй кода для атрымання ўсё праверылі значэнне сцяжка

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

            var x = this.val();

            theString += x + ";";

   });
0
дададзена
Тым не менш, не будзе працаваць! Хто upvoted гэта прапусціў памылку!
дададзена аўтар epascarello, крыніца

выкарыстоўваючы $ .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 ...

0
дададзена

Не з дапамогай JQuery:

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

Demo at http://jsfiddle.net/jstoolsmith/AeXWs/

0
дададзена
І вы павінны спадзявацца, што браўзэр падтрымлівае, querySelector і карту. ;)
дададзена аўтар epascarello, крыніца
Карта не можа з IE8 , калі вы не выкарыстоўваеце polyfill. EOL хутка! WOHOOO
дададзена аўтар epascarello, крыніца
Згодны, але ўсе папулярныя бягучыя браўзэры. См caniuse.com/#search=querySelector
дададзена аўтар HBP, крыніца