5

在我下面的代码中,当我检查“Mexico”时,我不断将“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] + "!";
    }
4

3 回答 3

7

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

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

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

于 2013-04-09T05:01:07.583 回答
1

如果您有多个 li. 然后您可以使用此代码获取选中的checkbox标签文本。

JS 文件链接

<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());
                   }
    );
});
于 2013-04-08T05:52:04.857 回答
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

于 2016-03-08T11:22:06.250 回答