如果element的子元素包含某些文本(在数组中找到)

时间:2015-11-03 10:28:08

标签: jquery arrays navigation

导航系统如下所示。我想要做的是将菜单项添加到数组,并对这些项执行某些操作。

我无法弄清楚如何做到这一点因此我需要你的帮助,谢谢!

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');
    };
});

2 个答案:

答案 0 :(得分:0)

使用jQuery的$.each(performActionsTo, function(i, val) { var element = $(".menu-item a:contains('" + val + "')"); // Perform action on element }); 选择器可以简化它:

Apples

<强>警告:

如果你决定拥有Big Apples然后[System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue=false, Order=111)] ,那么这个答案(和其他答案一样)可能需要额外注意,因为第一个将匹配两个元素,因为两个锚点都将“包含”该术语

答案 1 :(得分:-1)

试试这个:

var performActionsTo = ['Apples', 'Oranges'];
$('.menu-item').each(function() {
    if ( performActionsTo.indexOf($(this).find('a').text()) > -1) {
        console.log('action');
    };
});

http://www.w3schools.com/jsref/jsref_indexof_array.asp