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

时间:2018-06-08 19:03:32

标签: javascript jquery

我有以下设置

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)"]

1 个答案:

答案 0 :(得分:0)

您需要使用最近的类来选择元素。它不会自动返回为类,因为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,那么您可以使用attribute contains selector

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

或者,start with selector

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