我使用简单的几行代码来获取已选中复选框的标签并提醒值。但由于某种原因,警报显示每个复选框的[object Object]而不是其标签。我做错了什么?
function validate(){
var interests="";
$('input[type=checkbox]').each(function () {
if (this.checked){
var id=$(this).attr('id');
interests += $("#"+id).next()
}
});
alert(interests);
}
答案 0 :(得分:2)
使用.text()
:
interests += $("#" + id).next().text();
请注意,您可以使用一行代码获得相同的结果:
$('input:checked').next().text();
答案 1 :(得分:2)
var id=$(this).attr('id');
interests += $("#"+id).next()
等等,所以你要创建一个jQuery对象,获取元素的ID ......然后使用该ID通过该ID选择一个jQuery对象?这有什么意义呢?
除此之外,[object Object]
是一个包含标签的jQuery对象。
要获取实际的标签元素,您可能希望这样做:
var label = $("[for="+this.id+"]")[0]
如果您确实需要包含标签的jQuery对象,请删除[0]
。
答案 2 :(得分:0)
您正在将next()
返回的对象转换为字符串,这导致[object Object]
您需要调用.text()
来获取内容的文本:
interests += $(this).next().text();
答案 3 :(得分:0)
.next()
给你一个jQuery对象,当你强制转换为字符串时,它会给你“[object Object]”。您可能需要选项的文本:
interests += $("#"+id).next().text()