循环遍历父div并使用match隐藏子类



我想循环遍历pageHeadings中的每个div,如果子div的类匹配"menu_",我想隐藏它。我到底错过了什么?

<div id="pageHeadings">
    <div class="menu_practice">
        <p>test</p>
        <p>test2</p>
    </div>
    <div class="menu_about">
        <p>test</p>
        <p>test2</p>
    </div>

$("#pageHeadings div").each(function (index, val) {
    if($(this).attr('class').match("menu_")) {
        $(this).hide();
    }
});

get: Uncaught TypeError: Cannot read property 'match' of undefined

console.log($(this).attr('class'));给出:

col-md-1 col-md-offset-2 
undefined 
col-md-1 
undefined 
menu_practice 
col-md-1 
undefined 
menu_about 
col-md-1 
undefined 
menu_contact 

所以我认为它是找到它们的

您可以使用[class^=menu_],它将查找以menu_开头的类的元素。

例子

$("#pageHeadings div[class^=menu_]").hide();

或者,您也可以使用$(this).is('[class^=menu_]')

例子

$("#pageHeadings div").each(function (index, val) {
    if($(this).is('[class^=menu_]')) {
        $(this).hide();
    }
});

最新更新