最近的一个问题让我思考这个主题以及我们如何处理CSS和jQuery选择器(使用sizzler引擎)
Get id that starts with some string, inside a jQuery loop
所以我问社区,让我说我有一个问题,例如OP在那个问题中,我需要根据属性的内容选择一个元素,使用选择器会更快,还是常规表达?我的一般经验法则一直是避免使用正则表达式,除非尝试使用严格的验证规则(电子邮件,用户名,密码等)处理非常复杂的字符串,而不是确保给定属性具有给定值,因为正则表达式倾向于根据他们的本性,对此进行大量研究,要慢一些。 Some research material
以该问题为例,条件目的更快:
$(b).is("[id^='eventStartPrice']")
或
if (b.id.match(/^eventStartPrice/)))
假设b是某个对象,其id属性以列出的属性开头。
答案 0 :(得分:1)
我不知道jQuery的“is”函数是如何构建的(它可能会增加这样的开销),所以我会使用match,一个原生的JS函数。
答案 1 :(得分:0)
即使在理论上,这个问题也不值得问。像jQuery这样的工具的重点是让你免于处理像这样的piddly-ass细节。它比其他技术更慢地执行某些任务吗?也许。有关系吗?试试看吧。
无论是正则表达式还是jQuery或其他工具/框架/语言,都会有人告诉你不要使用它,因为“它很慢”。不要听他们,听听成千上万实际使用它的人。如果该工具的表现与所有这些一样糟糕,他们就不会使用它。