Jquery返回对象而不是选择器元素

时间:2016-10-27 12:17:49

标签: javascript jquery html console.log

我有像这样的HTML

<input id="paymentNumber" type="text" class="form-control input-sm bot-buffer" placeholder="Payment Number">

但当我尝试在jquery中获取html标签时$('#paymentNumber') 它返回了我的jquery对象而不是这个特定id的html标签。 但是虽然我可以得到像这样的$('#paymentNumber')[0]

的html标签

这个问题在今天之前没有出现过,我总是得到这样的html标签,但我的问题是为什么它会使每个html元素成为一个jquery对象。

是jquery或控制台还是别的什么更新?

2 个答案:

答案 0 :(得分:3)

jQuery总是返回一个&#34;包装集&#34;或一组选定的对象。也许,之前,您只返回了严格的包装集,其中仅包含您要查找的元素(您通过ID选择)。也许现在你偶然发现了一个全新的世界,你可以按类选择(在一个包裹的集合中获得许多元素),只有你没有期待也没有为此做好准备。

只是一个注释,但如果您想要实际的HTML标记名称,则需要:

$('#my_element').prop('tagName');

要获得单个包装对象,您可以像使用

一样使用数组访问
$('.many_elements')[0];

或者你可以得到第一个元素:

$('.many_elements').first();

希望有助于清理它。

答案 1 :(得分:0)

要获取id的html,你只需将.html()添加到最后;

// console.log($('#paymentNumber'))
console.log($('#paymentNumber').html())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="paymentNumber" type="text" class="form-control input-sm bot-buffer" placeholder="Payment Number">

仅使用$('#paymentNumber')将返回一个包含有关div

的大量信息的对象