jquery 选择器选择ID里面的标签

说实话,我刚接手这个项目的时候,对这行代码思考了很长时间。
你提到的$(&3 9 ;testa&3 9 ;)部分实际上是jQuery的标准写法。
但请注意,这里的testa是一个ID选择器,jQuery会直接帮你找到ID为testa的元素。
但如果只是想获取里面的子元素a,这样写是不够的。

有趣的是,我的一个同事研究了很久,最后发现他写的是$(&3 9 ;testa a&3 9 ;),这才是正确的姿势。
jQuery 将帮助您过滤掉元素中 ID 为 testa 的所有标签。
我记得的具体场景是公司官网的修改。
用户界面设计者仔细要求它与标签完全一致,否则导航链接颜色将不匹配。

当然,这也与浏览器兼容性有关。
我遇到了老浏览器IE1 1 ,它对这种类型的层次选择器不太友好。
此时,我们切换到 .find() 方法,代码看起来像 $(&3 9 ;testa&3 9 ;).find(&3 9 ;a&3 9 ;)。
我记得的数据是,1 5 %的IE1 1 用户仍在使用。
这个数字可能有点极端,但它确实存在。

我个人还没有尝试过在这个领域使用现代框架进行编写,但我估计 Vue 或 React 不会有太大不同。
例如,Vue 可以使用原生 DOM 操作,如 document.querySelector('testa a') 或 $refs 等。
但核心思想还是一样的:先定位父容器,然后过滤子容器。
当时我不明白为什么有些项目必须使用如此复杂的选择器。
后来我意识到这是为了代码的可读性——其他人看到它就能立即理解它的结构。

jquery怎么获取多个class的div标签

如何用jQuery将dt下a标签的href替换为其对应dd下第一个a标签的href?

你提到的用jQuery替换href的过程,我已经帮助过有类似需求的同事了,其实还是蛮实用的。
但我有一个小小的建议。
你写的步骤太完整了。
有时客户根本不需要这么复杂的流程,需要根据实际情况来定位。

上周,一位客户问我为什么他编写的代码产生了错误的结果。
后来发现他把next()和next('dd')搞混了,找不到对应的dd。
请注意这个例子。
$(this).next() 不写任何参数,默认为同级的下一个元素。
如果dt和dd之间还有其他几个元素,这肯定是错误的。

对于代码来说,最怕的就是写测试的时候不会出现问题,但是一旦投入生产就会出现错误。
我遇到的一个危险是我曾经忘记添加相应的Dd.length判断。
结果我还跑了一个与dd不匹配的dt。
虽然没有报错,但是效率很低。
现在我写这种操作的时候,肯定会加上这种万无一失的处理。

你对表演的看法是正确的。
在处理大量项目时,缓存选择器实际上可以节省大量时间。
我自己使用了一种技术,首先将要编辑的项目存储在变量中,例如 var $dt = $('nav_menu_product dt');然后使用$dt.each(),感觉比每次都重新选择要快。

但说实话,使用纯CSS进行此类操作可能会更容易。
例如,您可以尝试使用类似:next-of-type('dd') 的选择器,假设 dt 和 dd 类型必须一致。
或者您可以使用 JavaScript 的 Element.querySelector,它可能提供比 jQuery 更好的性能。

无论如何,这取决于你的决定。
这主要取决于你的具体结构和需求。
还有一个问题我不明白。
如果dt和dd之间有多个兄弟节点,你的next()方法会找不到吗?下次我会尝试一下。