我知道这个问题已经被问过很多次了,我已经找到了一些有关如何从复选框获取text()
的答案,但是当我尝试仅从选中的一个获取文本时,就是我的代码有一些错误。
考虑以下代码:
$('input.choose-age').on('change', function() {
$('input.choose-age').not(this).prop('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checkbox">
<label for='wom-10-14' class="checkbox-inline">
<input type="checkbox" id='wom-10-14' class='choose-age' checked />10-14
</label>
<label for='wom-15-19' class="checkbox-inline">
<input type="checkbox" id='wom-15-19' class='choose-age' />15-19
</label>
<label for='wom-10-19' class="checkbox-inline">
<input type="checkbox" id='wom-10-19' class='choose-age' />10-19
</label>
</div>
我想从复选框中选择
text()
(如果已选中)并将其保存到var
中。我正在使用d3.js
和mapbox
运行mapDraw函数,因此如果要检查其他复选框,我想更改指示器。我知道这个示例返回了文本,但是不是我想要的:
var ageLab = $('label[for=wom-10-14]').text();
这是我尝试的:
1.
var ageLab = $('input:checkbox:checked').map(function() {
return $(this).prev('label.checkbox-inline').text();
}).get();
console.log(ageLab);
资料来源:example 1
它返回:
Array[1]
0: ""
length: 1
2
var ageLab = $('.choose-age:checked').text(this.checked ? $(this).text() : '');
资料来源:example 2
但是,它不返回文本。
有没有更好的方法从复选框中获取
text()
,当被选中。提前致谢!
最佳答案
复选框元素没有.text()
或text属性,因为它们是空元素。如果定义了它们,您要么可以获取它们的值(value),要么可以采用其他方法。
最近
var ageLab = $('input:checkbox:checked').map(function() {
return $(this).closest('label.checkbox-inline').text();
}).get();
跨度
<input type="checkbox" id='wom-10-14' class='choose-age' checked /> <span>10-14</span>
var ageLab = $('input:checkbox:checked').map(function() {
return $(this).next('span').text();
}).get();