使用选择器选择 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&lktp=701&enableScopes=1&addToCampaign=1',670,'1','')" title="Add to Campaign" type="button"></td>
有两个限制:
- 我只好用jQuery selector(不能用遍历)
- 我对父亲元素一无所知(可以是任何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&lktp=701&enableScopes=1&addToCampaign=1',670,'1','')" title="Add to Campaign" type="button" />
</td>
<td>something else</td>
</tr>
</table>
我需要 select 子元素(<input>
)的父元素(在本例中为 <td>
),您可以在第二行代码中看到:
<td class="pbButton">
<input value="Add to Campaign" class="btn" name="addCampaign" onclick="javascript: openLookup('/_ui/common/data/LookupPage?lkpr=00Qo000000GyyNl&lktp=701&enableScopes=1&addToCampaign=1',670,'1','')" title="Add to Campaign" type="button"></td>
有两个限制:
- 我只好用jQuery selector(不能用遍历)
- 我对父亲元素一无所知(可以是任何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&lktp=701&enableScopes=1&addToCampaign=1',670,'1','')" title="Add to Campaign" type="button" />
</td>
<td>something else</td>
</tr>
</table>