Javascript getElementById对$(';#元素';)
在今天之前,我认为getElementById和$(“#element”)完成了同样的事情。但是,当我尝试以下方法时:Javascript getElementById对$(';#元素';),javascript,jquery,html,getelementbyid,Javascript,Jquery,Html,Getelementbyid,在今天之前,我认为getElementById和$(“#element”)完成了同样的事情。但是,当我尝试以下方法时: // Assuming I have jQuery imported already var $scrollHolder = $('#element'); var scrollDiv = document.getElementById("element"); scrollDiv.scrollTop = scrollDiv.scrollHeight; //$scrollHol
// Assuming I have jQuery imported already
var $scrollHolder = $('#element');
var scrollDiv = document.getElementById("element");
scrollDiv.scrollTop = scrollDiv.scrollHeight;
//$scrollHolder.scrollTop = $scrollHolder.scrollHeight;
注释行不起作用,而未注释行起作用。上面列出的两个方法是否返回不同的内容,或者我的代码中是否存在错误?注释行是否正常工作?我很困惑,希望你能洞察。谢谢。您必须从jQuery对象获取DOM元素
$scrollHolder[0].scrollTop = $scrollHolder[0].scrollHeight;
或
$(“#元素”)代码>是jQuery对象。它创建一个匹配对象的数组。但是这里有一个id选择器,因此只能获得一个对象,您可以通过使用数组索引[index]
或使用.get(index)
引用本机DOM对象
document.getElementById(“元素”)
是本机DOM对象
FYI
jQuery就是这样做的
您必须从jQuery对象获取DOM元素
$scrollHolder[0].scrollTop = $scrollHolder[0].scrollHeight;
或
$(“#元素”)代码>是jQuery对象。它创建一个匹配对象的数组。但是这里有一个id选择器,因此只能获得一个对象,您可以通过使用数组索引[index]
或使用.get(index)
引用本机DOM对象
document.getElementById(“元素”)
是本机DOM对象
FYI
jQuery就是这样做的
$('#id)
返回不具有本机DOM属性的jquery对象和文档。getElementById('id')
返回具有scrollTop
属性的本机DOM元素
请注意,您可以通过使用$()
将任何DOM元素包装成jquery对象,并通过访问索引将jquery对象转换成DOM元素。$('#id)
返回没有本机DOM属性的jquery对象和document.getElementById('id'))
返回一个具有scrollTop
属性的本机DOM元素
请注意,您可以使用$()
将任何DOM元素包装成jquery对象,并通过访问索引将jquery对象包装成DOM元素。另一种解决方案是使用正确的jquery包装:
$scrollHolder.scrollTop($scrollHolder.scrollHeight);
另一种解决方案是使用正确的jQuery包装器:
$scrollHolder.scrollTop($scrollHolder.scrollHeight);
JQuery选择器方法始终返回元素数组。
所以,注释行不会返回您期望的内容 JQuery选择器方法始终返回元素数组。
所以,注释行不会返回您期望的内容 我没有投你反对票。我没有投你反对票。回答得很好。它清晰而简洁。我会在期限届满时接受你的答复。谢谢你的澄清@乔苏埃斯皮诺萨很高兴这有帮助:)回答得很好。它清晰而简洁。我会在期限届满时接受你的答复。谢谢你的澄清@JosueEspinosa很高兴它有帮助:)将$scrollHolder.scrollHeight
更改为$scrollHolder[0]。scrollHeight
或$scrollHolder.get(0)。scrollHeight
将$scrollHolder.scrollHeight
更改为$scrollHolder.get(0)。scrollHeight