试图获取复选框标签,但改为使用Object

时间:2012-09-20 18:22:14

标签: javascript jquery

我使用简单的几行代码来获取已选中复选框的标签并提醒值。但由于某种原因,警报显示每个复选框的[object Object]而不是其标签。我做错了什么?

function validate(){
    var interests="";
    $('input[type=checkbox]').each(function () {
           if (this.checked){
               var id=$(this).attr('id');
               interests += $("#"+id).next()
           }
    });
    alert(interests);

}​

jsFiddle

4 个答案:

答案 0 :(得分:2)

使用.text()

interests += $("#" + id).next().text();

请注意,您可以使用一行代码获得相同的结果:

$('input:checked').next().text();

The one line code jsFiddle

答案 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()

http://jsfiddle.net/WFzS7/1/