2015-11-03 160 views
0

導航系統如下所示。我想要做的是將菜單項添加到數組中,並且對於那些項目應該執行某些操作。如果元素的子元素包含某些文本(在數組中找到)

我一直無法弄清楚如何做到這一點,因此我需要你的幫助,謝謝!

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

你有沒有搜索它? –

+0

@ A.Wolff:是的,我已經搜索過它,但還沒有找到解決方案。 –

回答

0

它可以使用jQuery的contains本身進行簡單得多講師:

$.each(performActionsTo, function(i, val) { 
    var element = $(".menu-item a:contains('" + val + "')"); 
    // Perform action on element 
}); 

警告:如果您決定Apples然後Big Apples

這個答案(與其他的答案)可能需要額外的關注,作爲第一個將匹配兩種元素都錨將「包含」這個詞。

+0

工程就像一個魅力。漂亮和優雅,謝謝! –

+0

@KarlSagar你試過我的回答嗎? –

+0

@JohnR:是的,我做到了。不幸的是,它只是由於某種原因纔在數組中找到其中的一個元素。不管怎麼說,還是要謝謝你! –

相關問題