Javascript 如何使用Jquery遍历选择器的选项

Javascript 如何使用Jquery遍历选择器的选项,javascript,jquery,Javascript,Jquery,我有一个非常大的项目,并将我的选择范围缩小到: //The $component is found from various other vars using .find to this point var $selector = $Component.find('[class="multiselect-container"]'); 我尝试使用.each函数来迭代所有的值及其字符串。在过去的一个多小时里,我尝试了一些不同的方法,但都没有效果 选择器有多个标记 每个选项都包含,其中包含,其中包含

我有一个非常大的项目,并将我的选择范围缩小到:

//The $component is found from various other vars using .find to this point
var $selector = $Component.find('[class="multiselect-container"]');
我尝试使用.each函数来迭代所有的值及其字符串。在过去的一个多小时里,我尝试了一些不同的方法,但都没有效果

选择器有多个
  • 标记

    每个选项都包含
    ,其中包含
    ,其中包含
    和“10”

    我需要得到值和字符串(因为它们有时是不同的)。如果我能做到这一点,我相信将每组数据放入2d数组应该很容易


    我试过阅读其他关于此的问题,但没有任何解释如何使用。一旦找到要迭代的元素,每个问题都会出现。

    类似的问题似乎应该可以解决:

    var array = [];
    $selector.find("label.radio").each(function() {
        var value = $(this).find("input:radio").val();
        var string = $(this).text();
        array.push({ string: string, value: value });
    });
    

    顺便说一句,不要在选择器中使用
    [class=classname]
    ,请使用
    .classname
    。如果元素有多个类,而您只想匹配其中一个类,那么选择器将无法工作,它将尝试按字面意思匹配整个
    属性。

    类似这样的内容似乎应该可以工作:

    var array = [];
    $selector.find("label.radio").each(function() {
        var value = $(this).find("input:radio").val();
        var string = $(this).text();
        array.push({ string: string, value: value });
    });
    

    顺便说一句,不要在选择器中使用
    [class=classname]
    ,请使用
    .classname
    。如果元素有多个类,而您只想匹配其中一个,那么选择器将无法工作,它将尝试按字面意思匹配整个
    属性。

    1,因为您有类名,所以请改为使用$(“.multiselect container”)查询该类名

    您可以从子dom元素中检索值。只需抓取内部文本或标签文本

    $Component.find('.multiselect-container').each(function(){
        var value = $("input", this).val();
        var label = $("label", this).text();
        var text = input.innerText;
        //  text and label might be the same value
    });
    
    或者您可以将其过滤到选中的单选按钮

    $Component.find('.multiselect-container input[type=radio]:checked').each(function(){
       var value = this.value;
       var label = $(this).closest("label").text();
       // var li = $(this).closest("li")
       // same as above
    });
    

    首先,因为您有类名,所以改为使用$(“.multiselect container”)查询该类名

    您可以从子dom元素中检索值。只需抓取内部文本或标签文本

    $Component.find('.multiselect-container').each(function(){
        var value = $("input", this).val();
        var label = $("label", this).text();
        var text = input.innerText;
        //  text and label might be the same value
    });
    
    或者您可以将其过滤到选中的单选按钮

    $Component.find('.multiselect-container input[type=radio]:checked').each(function(){
       var value = this.value;
       var label = $(this).closest("label").text();
       // var li = $(this).closest("li")
       // same as above
    });
    

    最好显示您的HTML,而不是试图用文字描述它。您还应该显示您尝试的代码,而不仅仅是说“我正在尝试使用.each函数”。如果你不显示代码,我们如何解释你做错了什么,让你从错误中吸取教训?最好显示你的HTML,而不是试图用文字来描述它。你还应该显示你尝试的代码,而不仅仅是说“我正在尝试使用.each函数”。如果您不显示代码,我们如何解释您做错了什么,以便您从错误中吸取教训?谢谢您的帮助。这正是我要找的。希望这能帮助有类似问题的人解决。你应该像我上面说的那样澄清这个问题,这样他们就会知道他们的设置是否有问题。谢谢你的帮助。这正是我要找的。希望这能帮助一些人解决类似的问题。你应该像我上面说的那样澄清这个问题,这样他们就会知道他们的设置是否有问题。