jQuery(反)模式:使用字符串操作构建选择器

我常常发现自己构建了带字符串操作的选择器(split,search,replace,concat,+,join)。

是好是坏?

这有什么问题? 有什么替代方案 – 只需将它们硬编码为单个字符串? 但您可以在网站上使用约定来了解布局的组织方式。 如果您只是在一个地方定义选择器组件,并使用它来构建一个选择器,那么这样的声音就不会比通过所有代码并在其显示的任何地方进行搜索替换更少麻烦。

我会说,假设你有其他组织的字符串(在一个地方定义,在几个地方使用),这是好的。

这与您的问题有点无关,但是:

我建议的一件事是对基于后代或子选择器的谨慎(例如:’div.product> span.price’)。 通常,UI部件正在重新组织,移动或用其他东西包裹。 当它发生时,基于后代的选择器会中断。

要记住的另一件事是基于属性的选择器 (例如:’input [value =“Login”]’)在处理本地化内容时通常是脆弱的(如果属性值是本地化的)。