You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery如何同时通过ID规则与类名匹配目标元素?

问题原因及解决办法

为啥加类名后失效?

你用错了closest()的语法——这个方法只能从当前元素开始向上找祖先元素,不支持空格分隔的「后代选择器」。你写的[ID规则] .wpforms-field-likert_scale相当于让它找:既是符合ID规则的容器的子元素,同时又是当前元素的祖先的元素。这逻辑完全矛盾:容器本身是当前元素的祖先,它的子元素都在容器内部,不可能反过来成为当前元素的祖先,所以自然匹配不到任何结果。

分情况修正

情况1:目标就是带类的容器本身

如果你的需求是找同时符合ID格式、又带有wpforms-field-likert_scale类的那个祖先容器,直接把类选择器和ID选择器合并(不要加空格):

$(this).closest('[id^=wpforms-'+this_form_id+'-field_][id$=-container].wpforms-field-likert_scale')

情况2:要找容器内部的类元素

如果wpforms-field-likert_scale是符合ID规则的容器的后代元素,那就先通过closest()定位容器,再用find()搜索容器内的目标类元素:

$(this).closest('[id^=wpforms-'+this_form_id+'-field_][id$=-container]').find('.wpforms-field-likert_scale')

内容的提问来源于stack exchange,提问作者James B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 13:15:56