jQuery 通过 id 和 class 匹配元素

问题描述 投票:0回答:1

我需要捕获表单中的一些元素。元素看起来像这样:

<div id="wpforms-22603-field_17-container" class="wpforms-field wpforms-field-likert_scale" data-field-id="17">
<div id="wpforms-22603-field_18-container" class="wpforms-field wpforms-field-likert_scale" data-field-id="18">
<div id="wpforms-22603-field_19-container" class="wpforms-field wpforms-field-likert_scale" data-field-id="19">

可变部分是

-field_
之后的数字,当然还有
data-field-id
值本身。

所以我写了这个:

var elem = $(this).closest('[id^=wpforms-'+this_form_id+'-field_][id$=-container]');

其中

this_form_id
包含值
22603
。这很好用,但我还需要在匹配过程中指定一个类,该类是
wpforms-field-likert_scale

所以我尝试了这个:

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

这不起作用。我做错了什么?

jquery jquery-selectors
1个回答
0
投票

删除

.

之前的空格
var elem = $(this).closest(`[id^=wpforms-${this_form_id}-field_][id$=-container].wpforms-field-likert_scale`);

或者使用过滤器

var elem = $(this).closest('.wpforms-field-likert_scale')
  .filter(`[id^=wpforms-${this_form_id}-field_][id$=-container]`);
© www.soinside.com 2019 - 2024. All rights reserved.