在我的下面的代码中,当我检查“墨西哥”时,我不断将“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] + "!";
}
答案 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
标签文本。
<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