使用选择器选择 jQuery 中的父元素(无遍历)

Selecting father element in jQuery with selectors (no traversing)

我需要 select 子元素(<input>)的父元素(在本例中为 <td>),您可以在第二行代码中看到:

<td class="pbButton">
<input value="Add to Campaign" class="btn" name="addCampaign" onclick="javascript: openLookup('/_ui/common/data/LookupPage?lkpr=00Qo000000GyyNl&amp;lktp=701&amp;enableScopes=1&amp;addToCampaign=1',670,'1','')" title="Add to Campaign" type="button"></td>

有两个限制:

  1. 我只好用jQuery selector(不能用遍历)
  2. 我对父亲元素一无所知(可以是任何HTML 元素,任何 class 或 id 等)。

执行此操作的最佳方法是什么?

谢谢。

您可以使用 :has() 选择器

$('*:has( > input[name="addCampaign"])').css('background-color', 'lightgrey')
td {
  padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <td class="pbButton">
      <input value="Add to Campaign" class="btn" name="addCampaign" onclick="javascript: openLookup('/_ui/common/data/LookupPage?lkpr=00Qo000000GyyNl&amp;lktp=701&amp;enableScopes=1&amp;addToCampaign=1',670,'1','')" title="Add to Campaign" type="button" />
    </td>
    <td>something else</td>
  </tr>
</table>