jQuery获取复选框的标签

时间:2013-04-08 05:41:37

标签: jquery html checkbox

在我的下面的代码中,当我检查“墨西哥”时,我不断将“MexicoMexico”作为标签文本返回。对于所有其他字段,我没有得到这个重复的结果,它只适用于这一个字段。问题发生在第一次分配countryvalues [i]之后,我不明白为什么。

<div id="country">
....
   <li><input type="checkbox" name="country" value="mexico" class="checkbox">
   <label for="mexico">Mexico</label></input></li>
</div>

countryvalues = $('#country input:checkbox:checked').map(function() {
    return this.value;
}).get(); 
for (var i=0; i<countryvalues.length; i++)
    {
        countryvalues[i] = $("label[for='" + countryvalues[i] + "']").text();
        countryvalues[i] = countryvalues[i].split(' ').join('%20');
        fields = fields + "coveraa!";
        url = url + countryvalues[i] + "!";
    }

3 个答案:

答案 0 :(得分:6)

Sarina,我只建议您尝试在.map()回调中获取您寻找的字符串,而不是再次使用for(...){...}循环播放。

var countryvalues = $('#country input:checkbox:checked').map(function() {
    return $(this).next("label").text().split(' ').join('%20');
}).get();

确保清除HTML </input>的所有实例,并确保输入元素是自动关闭的,<input ... />

答案 1 :(得分:1)

如果您有多个li。然后,您可以使用此代码获取已检查的checkbox标签文本。

JS FIDLLE LINK

<div id="country">
....
   <li><input type="checkbox" name="country" value="mexico" class="checkbox">
   <label for="mexico">Mexico</label></input>
    </li>
    <li><input type="checkbox" name="country" value="mexico" class="checkbox">
   <label for="mexico">Canada</label></input>
    </li>
</div>


$(document).ready(function(){
    $('#country li input:checkbox').change(
        function() {
            //alert('HI');
            alert($(this).next('label').text());
                   }
    );
});

答案 2 :(得分:0)

检查以下示例,您将获得脚本如何在jQuery中获取复选框标签

<html>
 <body>
     <ul>
         <li>
             <input type="checkbox" name="mouse" value="1" id="mouse"  /><label for="mouse">Mouse</label>
            </li>
            <li>
             <input type="checkbox" name="keyboard" value="1" id="keyboard"  /><label for="mouse">Keyboard</label>
            </li>
            <li>
             <input type="checkbox" name="monitor" value="1" id="monitor"  /><label for="mouse">Monitor</label>
            </li>
        </ul>
    </body>
</html>

<script type="text/javascript">
 var label = jQuery('label[for=' + jQuery(this).attr('id') + ']').html();
 alert(label);
</script>

从此处获取的代码:http://chandreshrana.blogspot.in/2015/09/how-to-get-checkbox-label-text-jquery.html