如果元素的子元素包含特定文本(在数组中找到)
If element's child contains certain text (found in array)
导航系统如下所示。我想要做的是将菜单项添加到数组中,并且应该对这些项目执行某些操作。
我一直无法弄清楚如何做到这一点,因此我需要你的帮助,谢谢!
html:
<ul id="mainnav-menu" class="menu">
<li id="menu-item menu-item-1">
<a href="#">Apples</a>
</li>
<li id="menu-item menu-item-2">
<a href="#">Oranges</a>
</li>
<li id="menu-item menu-item-3">
<span class="submenu-dropdown-toggle"></span>
<a href="#">Green bananas</a>
</li>
...
</ul>
jQuery:
var performActionsTo = ['Apples', 'Oranges'];
$('.menu-item').each(function() {
if $(this).closest('a').text() == /* exists in array */ {
console.log('action');
};
});
试试这个:
var performActionsTo = ['Apples', 'Oranges'];
$('.menu-item').each(function() {
if ( performActionsTo.indexOf($(this).find('a').text()) > -1) {
console.log('action');
};
});
使用 jQuery 的 contains
选择器可以使它变得更简单:
$.each(performActionsTo, function(i, val) {
var element = $(".menu-item a:contains('" + val + "')");
// Perform action on element
});
警告:
如果您决定使用 Apples
然后 Big Apples
,则此答案(与其他答案一样)可能需要格外注意,因为第一个将匹配两个元素,因为两个锚都将 'contain' 术语。
导航系统如下所示。我想要做的是将菜单项添加到数组中,并且应该对这些项目执行某些操作。
我一直无法弄清楚如何做到这一点,因此我需要你的帮助,谢谢!
html:
<ul id="mainnav-menu" class="menu">
<li id="menu-item menu-item-1">
<a href="#">Apples</a>
</li>
<li id="menu-item menu-item-2">
<a href="#">Oranges</a>
</li>
<li id="menu-item menu-item-3">
<span class="submenu-dropdown-toggle"></span>
<a href="#">Green bananas</a>
</li>
...
</ul>
jQuery:
var performActionsTo = ['Apples', 'Oranges'];
$('.menu-item').each(function() {
if $(this).closest('a').text() == /* exists in array */ {
console.log('action');
};
});
试试这个:
var performActionsTo = ['Apples', 'Oranges'];
$('.menu-item').each(function() {
if ( performActionsTo.indexOf($(this).find('a').text()) > -1) {
console.log('action');
};
});
使用 jQuery 的 contains
选择器可以使它变得更简单:
$.each(performActionsTo, function(i, val) {
var element = $(".menu-item a:contains('" + val + "')");
// Perform action on element
});
警告:
如果您决定使用 Apples
然后 Big Apples
,则此答案(与其他答案一样)可能需要格外注意,因为第一个将匹配两个元素,因为两个锚都将 'contain' 术语。