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
JavaScript与jQuery选择器_Javascript_Jquery_Dom_Jquery Selectors - Fatal编程技术网

JavaScript与jQuery选择器

JavaScript与jQuery选择器,javascript,jquery,dom,jquery-selectors,Javascript,Jquery,Dom,Jquery Selectors,我想知道jQuery选择器$(“#fake div)和JavaScript选择器getElementById(“fake div”)之间有什么区别。首先,它们甚至被称为JavaScript选择器吗?我知道jQuery返回jQuery对象,而JavaScript选择器返回DOM元素;但是,考虑到这两段代码: jQuery选择器 var post = $("#postid"); var reply_list = post.find(".replies_ul"); var current_reply

我想知道jQuery选择器
$(“#fake div)
和JavaScript选择器
getElementById(“fake div”)
之间有什么区别。首先,它们甚至被称为JavaScript选择器吗?我知道jQuery返回jQuery对象,而JavaScript选择器返回DOM元素;但是,考虑到这两段代码:

jQuery选择器

var post = $("#postid");
var reply_list = post.find(".replies_ul");
var current_reply = document.createElement("li");
current_reply.setAttribute("class", "reply_li");
reply_list.insertBefore(current_reply, reply_list.firstChild);
var content_list = document.getElementById("content_ul");
var current_post = document.createElement("li");
current_post.setAttribute("class","content_li");
content_list.insertBefore(current_post, content_list.firstChild);
JS选择器

var post = $("#postid");
var reply_list = post.find(".replies_ul");
var current_reply = document.createElement("li");
current_reply.setAttribute("class", "reply_li");
reply_list.insertBefore(current_reply, reply_list.firstChild);
var content_list = document.getElementById("content_ul");
var current_post = document.createElement("li");
current_post.setAttribute("class","content_li");
content_list.insertBefore(current_post, content_list.firstChild);

当调用最后一行代码时,jQuery选择器最终从DOM中删除列表,JavaScript选择器成功地将列表项插入列表顶部。我正在寻找一个关于发生了什么的解释。

区别不在于选择器,而在于您调用的方法/函数

您正在使用函数并将其与函数进行比较

在jQuery中,
insertBefore
函数只有一个参数,因此使用错误

如果您想使用Javascript函数
insertBefore
而不是jQuery函数,那么必须将jQuery对象
reply_list
转换为Javascript函数。 您可以使用
.get(0)
[0]
这样做:

reply_list[0].insertBefore(current_post, content_list.firstChild);

//or like this
reply_list.get(0).insertBefore(current_post, content_list.firstChild);

区别不在于选择器,而在于您正在调用的方法/函数

您正在使用函数并将其与函数进行比较

在jQuery中,
insertBefore
函数只有一个参数,因此使用错误

如果您想使用Javascript函数
insertBefore
而不是jQuery函数,那么必须将jQuery对象
reply_list
转换为Javascript函数。 您可以使用
.get(0)
[0]
这样做:

reply_list[0].insertBefore(current_post, content_list.firstChild);

//or like this
reply_list.get(0).insertBefore(current_post, content_list.firstChild);

在第一个代码块中,
reply\u list
是一个jQuery对象;这意味着它实际上没有
.firstChild
属性

将其更改为:

reply_list.get(0).insertBefore(current_reply, reply_list.get(0).firstChild);

请注意jQuery的和JavaScript的

之间的区别在您的第一个代码块中,
回复列表是一个jQuery对象;这意味着它实际上没有
.firstChild
属性

将其更改为:

reply_list.get(0).insertBefore(current_reply, reply_list.get(0).firstChild);

请注意jQuery的和JavaScript的

之间的区别代码中的jQuery
插入之前的
无效,它接受两个参数,而jQuery只接受一个:

说明:在目标之前插入匹配元素集中的每个元素

正常的情况是:

说明:将指定节点作为当前节点的子节点插入到引用元素之前

parentElement.insertBefore(newElement,referenceElement)


代码中的jQuery
insertBefore
无效,它接受两个参数,而jQuery只接受一个:

说明:在目标之前插入匹配元素集中的每个元素

正常的情况是:

说明:将指定节点作为当前节点的子节点插入到引用元素之前

parentElement.insertBefore(newElement,referenceElement)


$(“#posted”)[0]
获取DOM元素。你有什么问题吗?你想知道jQuery和JS选择器之间的区别,还是想知道如何修复jQuery代码(这是jQuery和纯JS的混合体)以使其按预期工作?@Tomm使用jQuery和纯JS的混合体是否有缺点?我想知道这两个问题的答案附件-但我现在明白了,谢谢。
$(“#posted”)[0]
获取DOM元素。你有什么问题吗?你想知道jQuery和JS选择器之间的区别,还是想知道如何修复jQuery代码(这是jQuery和纯JS的混合体)以使其按预期工作?@Tomm使用jQuery和纯JS的混合体是否有缺点?我想知道这两个问题的答案我现在明白了,谢谢。