是否在此项目中使用jQuery或JavaScript中的选择器?

是否在此项目中使用jQuery或JavaScript中的选择器?,javascript,jquery,performance,jquery-selectors,getelementbyid,Javascript,Jquery,Performance,Jquery Selectors,Getelementbyid,我正在做一个项目,包括很多元素的创建和附加,经过一点研究,我想到了这一点 $(新元素)和$(选择器) 比 .createElement(newElement)和.getElementBy 因为我正在做一个待办事项列表应用程序,其中将包括大量的创建/附加/选择: <div class="mainTaskWrapper clearfix"> <div class="mainMarker"></div> <label for="task1"&g

我正在做一个项目,包括很多元素的创建和附加,经过一点研究,我想到了这一点

$(新元素)
$(选择器)

.createElement(newElement)
.getElementBy

因为我正在做一个待办事项列表应用程序,其中将包括大量的创建/附加/选择:

<div class="mainTaskWrapper clearfix">
    <div class="mainMarker"></div>
    <label for="task1">This is task1</label>
    <div class="holder"></div>
    <div class="subTrigger"></div>                            
    <div class="checkButton"></div>
    <div class="optTrigger"></div>
    <div class="mainOptions">
        <ul>
            <li id="mainInfo">Details</li>
            <li id="mainDivide">Divide</li>
            <li id="mainEdit">Edit</li>
            <li id="mainDelete">Delete</li>
        </ul>                               
    </div>
</div> 

这是任务1
    详细信息 分割 编辑 删除

你建议我用什么?jQuery选择和创建方式,还是JavaScript方式?

取决于您正在做的其他事情。在某些情况下,设置innerHTML是最快的(特别是插入大块块时)


也就是说,从开发人员的角度来看,jquery方法实际上是最易于维护的。在性能出现问题之前,我可能会使用jquery版本,并将对jquery的调用封装在其他函数中,当jquery出现问题时,我可以将其替换掉。

这取决于您还做了什么。在某些情况下,设置innerHTML是最快的(特别是插入大块块时)


也就是说,从开发人员的角度来看,jquery方法实际上是最易于维护的。在性能出现问题之前,我可能会使用jquery版本,并将对jquery的调用封装在其他函数中,当jquery出现问题时,我可以将其替换掉。

这确实是开发人员的偏好问题


就我个人而言,我发现严格使用jQuery选择器更容易编写和理解,并且当选择器变得更复杂时更一致。使用本机JavaScript可以更快地编译和呈现,但根据页面的复杂性,您可能看不到任何差异。

这确实是开发人员的偏好问题

就我个人而言,我发现严格使用jQuery选择器更容易编写和理解,并且当选择器变得更复杂时更一致。使用本机JavaScript可以更快地编译和呈现,但根据页面的复杂性,您可能看不到任何差异。

当您说“大量创建/附加/选择”时,您的确切意思是什么

是每秒几次,还是“很多”?由于代码将在客户端运行,因此每秒运行一次不会有太大问题

jQuery将是“最佳”选择,因为可维护性是一个巨大的优势,使用jQuery编写的任何代码都可能更加清晰。

当您说“大量创建/附加/选择”时,您的确切意思是什么

是每秒几次,还是“很多”?由于代码将在客户端运行,因此每秒运行一次不会有太大问题


jQuery将是“最佳”选择,因为可维护性是一个巨大的优势,使用jQuery编写的任何代码都可能更加清晰。

我建议您不要一次创建那么多相同的元素。相反,将它们放在HTML中一次并隐藏(使用
display:none
),然后根据需要使用jQuery来
.clone()
整个块


但是:首先,去掉那些
id=
属性。同一ID的页面上不能有多个元素。

我建议您不要一次创建那么多相同的元素。相反,将它们放在HTML中一次并隐藏(使用
display:none
),然后根据需要使用jQuery来
.clone()
整个块


但是:首先,去掉那些
id=
属性。一个页面上不能有多个相同ID的元素。

Gee-whiz,jQuery比普通JS慢,谁会想到呢?我建议使用框架,但是如果你对VanillaJS不熟练,也许可以使用jQuery。试着用这两种语言,看看速度的差异是否值得增加代码的复杂性。我有一个丰富的Web应用程序,它有大量的JS交互,几乎所有东西都使用jQuery。对于我来说,任何操作都没有明显的性能问题。除非您的DOM很大,否则我认为jQuery不会有太多问题。不过,这取决于你的基准测试。哈哈,vanillaJS网站让我抓狂。天哪,jQuery比普通JS慢,谁会想到呢?我建议使用框架,但是如果你对VanillaJS不熟练,也许可以使用jQuery。试着用这两种语言,看看速度的差异是否值得增加代码的复杂性。我有一个丰富的Web应用程序,它有大量的JS交互,几乎所有东西都使用jQuery。对于我来说,任何操作都没有明显的性能问题。除非您的DOM很大,否则我认为jQuery不会有太多问题。不过,这取决于你的基准测试。哈哈,vanillaJS网站让我崩溃了。好吧,当用户按下某个按钮时,上面的代码就会被创建并附加到其父div中。这取决于用户交互。然后,(IMHO,)你不必太担心jQuery增加的复杂性。它可能“较慢”,但最有可能以毫秒为单位。使用普通JS可能不值得花费额外的开发时间。好吧,当用户按下某个按钮时,上面的代码将被创建并附加到其父div中。这取决于用户交互。然后,(IMHO,)您不必太担心jQuery增加的复杂性。它可能“较慢”,但最有可能以毫秒为单位。使用普通JS所花费的额外开发时间可能不值得。