jQuery选择顶级元素文本

时间:2014-03-05 08:52:49

标签: javascript jquery

我有一个包含Store部分的菜单,其中包含类别Printers Keyboards的子菜单,在这些类别下,它们有自己的子类别。

我要做的是在Printers中仅使用jQuery选择Keyboards Array的顶级类别。

当我使用以下内容时,它打印出来["Printers", "Color", "Black/White", "Dual", "Keyboards", "Wired", "Wireless", "Touchscreen"]这比现在我需要的更多,有人可以帮我吗

查看我的jsFiddle

的jQuery

var optionTexts = [];
$('.main-menu ul li a:contains("Store")').parent().find('.sub-menu > li a').each(function(){
        optionTexts.push($(this).text());
});
console.log(optionTexts);

3 个答案:

答案 0 :(得分:1)

编辑我看了一下你的小提琴,并改变了找到正确的“a”标签的方式:

'.sub-menu > li > ul > li > a'会这样做(我在你的jsfiddle中检查过):

$('.main-menu ul li a:contains("Store")').parent().find('.sub-menu > li > ul > li > a').each(function(){
    optionTexts.push($(this).text());
});

你这样做的方式,选择“ul.sub-menu”下面的每一个 - 也就是嵌套在“ul.sub-menu”的子孙中的那些。

答案 1 :(得分:0)

希望您正在寻找类似的东西

var optionTexts = [];
$('.main-menu ul li a:contains("Store")').parent().find('.sub-menu').parent('li').each(function(){
    optionTexts.push($(this).children('a').text());
});
console.log(optionTexts);

答案 2 :(得分:0)

我像这样编辑你的代码,它起作用了:

$(function () {
    $(".check").on('click', function () {
        var optionTexts = [];
        $('.list > ul > li > a').each(function () {
            optionTexts.push($(this).text());
        });
        c(optionTexts);
    });
});

输出:打印机,键盘

检查它FIDDLE:http://jsfiddle.net/mehmetakifalp/Mkv9q/16/