最近的(elem)没有按预期返回 - 返回init [elem ..]而不是elem

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (70)

我有以下设置

HTML:

<div class="prod-inner">
  <div class="number-wrapper">
      <input type="text" name="updates[]" id="testID"   value="1"  >
  </div>
</div>

JQuery的:

$('.number-wrapper input[id=testID]').closest('prod-inner');

期望像这样返回实际的div:

   <div class="prod-inner">
      <div class="number-wrapper">
          <input type="text" name="updates[]" id="testID"   value="1"  >
      </div>
    </div>

但它返回:

    init [div.prod-inner, prevObject: init(1), context: document, selector: ".number-wrapper input[id=updates_36213941315].closest(.prod-inner)"]
提问于
用户回答回答于

您需要使用最近的类来选择元素。它不会自动返回为类,因为jquery不知道它是否是最接近的类或id或其他元素对象:

$('.number-wrapper input[id="testID"]').closest('.prod-inner');
// wrap with double quotes ^^   | class selector ^.

此外,您可以直接使用ID,因为它是唯一的:

$('#testID').closest('.prod-inner');

如果你有生成的动态id,我可以看到id=updates_36213941315,那么你可以使用属性包含选择器:

$('[id*="36213941315"]').closest('.prod-inner');

或者,从选择器开始,

$('[id^="updates_"]').closest('.prod-inner');

扫码关注云+社区

领取腾讯云代金券