为什么我的输入值[object HTMLInputElement]?

为什么我的输入值[object HTMLInputElement]?

问题描述:

我不明白为什么它不打印出我的<input type="text">的价值?为什么我的输入值[object HTMLInputElement]?

$('#x').click(function() { 
    var firstname = $("#student_firstname").val(); 
    var lastname = $("#student_lastname").val(); 

    $("ul").after('<li style="display:list-item; padding:5px; border:2px solid black" name="c[]"><strong>First Name</strong> ' + student_firstname + ', <strong>Last Name</strong> ' + student_lastname + '</li>'); 
}); 
+0

因为你选择DOM内的HTML标记。如果你需要更多的帮助,你应该在你的DOM上发布信息。 – TCHdvlp

您的问题的原因是因为你的变量命名为firstnamelastname,不student_firstnamestudent_lastname。当你使用这些名字时,Javascript会用这些id属性检索元素并返回它们。在这种情况下,它们是HTMLInputElements,当强制转换为字符串时,会提供您看到的输出。

另请注意,您应该使用append()而不是after()li添加到ul

这是你的代码的工作版本:

$('#x').click(function() { 
    var firstname = $("#student_firstname").val(); 
    var lastname = $("#student_lastname").val(); 

    $("ul").append('<li style="display:list-item; padding:5px; border:2px solid black" name="c[]"><strong>First Name</strong> ' + firstname + ', <strong>Last Name</strong > ' + lastname + ' </li>'); 
}); 

Working example

+0

真棒谢谢你!我只注意到了这一点。 *面对手掌*哈哈。 –

+0

没问题,很高兴帮助:) –