Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getElementById对$(';#元素';)_Javascript_Jquery_Html_Getelementbyid - Fatal编程技术网

Javascript getElementById对$(';#元素';)

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

在今天之前,我认为getElementById和$(“#element”)完成了同样的事情。但是,当我尝试以下方法时:

// 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