用jquery选择器忽略子div

时间:2014-03-09 21:07:51

标签: javascript jquery

嗨请在下面建议。

我写过

var demo= $("div#side-bar ul li").find('a').find('img').parent().text();

工作正常。但是给我的输出为:“最大化”。 我想回答USERNAME_TO_PRINT

<div id="side-bar" >
    <ul>
        <li alt="User options">
            <a href="#" name="nav1">
                <img alt="ppawar" src=" Myprofile.png" /> USERNAME_TO_PRINT
            </a>
            <div class="jx-arrow-up"></div>
            <ul id="nav-1" style="display: none;">
                <li>
                    <a href="#">
                        <img align="absmiddle" src="maximize.png" />
                       Maximize
                    </a>
                    <div class="jx-arrow-up"></div>
                </li>
            </ul>
        </li>
    </ul>
</div>

4 个答案:

答案 0 :(得分:2)

修复了HTML(删除了</div>),告诉jQuery只找到直接后代会得到你想要的字符串。

var demo= $("div#side-bar > ul > li > a").text();
console.log(demo);

WORKING DEMO

答案 1 :(得分:1)

选择元素的方法有很多种。 Popnoodles的回答是正确的,这也会有效:

var demo = $("div#side-bar ul li a:eq(0)").text()
console.log(demo)

答案 2 :(得分:0)

所有这些loooooong手查询选择器都没问题 - 但你真的想写这样的代码吗?

如果您能够为关闭元素<a href="#" name="nav1">添加名称,那么为什么不

$('a[name=nav1]').text();

编辑:错过了将选择器作为字符串发送 - 感谢@pop:)

答案 3 :(得分:0)

您还可以使用:first.first()