在我下面的代码中,当我检查“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] + "!";
}
最佳答案
Sarina,我只能建议您尝试获取您在 .map()
中查找的字符串回调而不是用 for(...){...}
再次循环.
var countryvalues = $('#country input:checkbox:checked').map(function() {
return $(this).next("label").text().split(' ').join('%20');
}).get();
确保清除 HTML 中所有 </input>
的实例并且输入元素是自闭的,<input ... />
.
关于jQuery 获取选中复选框的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15871997/