jQuery li 元素按 ID 选择

Posted

技术标签:

【中文标题】jQuery li 元素按 ID 选择【英文标题】:jQuery li element select by ID 【发布时间】:2015-04-01 10:21:32 【问题描述】:

有人可以帮忙吗?

我有一个这样的 html 代码。

<ul class="nav navbar-nav navbar-left">
                    <li>
                        <a href="#"><img src="img/topbararrowback.png" ></a>
                    </li>
                    <li id="hide_filter">
                        <a href="#">Hide Filter</a>
                    </li>
                </ul>

我尝试在 ID 为 hide_filter 的 li 上添加一个 .click 事件。

我所做的是-

$("#hide_filter").click(function()

    alert('message');
);

还有-

$(".navbar-left li").click(function() 
    alert(this.id); // id of clicked li by directly accessing DOMElement property
    alert($(this).attr('id')); // jQuery's .attr() method, same but more verbose
    alert($(this).html()); // gets innerHTML of clicked li
    alert($(this).text()); // gets text contents of clicked li
);

还有-

    $('ul.selectedItems li#hide_filter').click(function()

    //$("p").hide();
    alert('message');
);

还有-

$('#hide_filter')[0].click(function()

    //$("p").hide();
    alert('message');
);

但对我没有任何作用。

提前感谢您的帮助..

【问题讨论】:

当脚本执行时,dom中是否存在上述元素? 如果添加了 jquery 并且在附加事件时 DOM 准备就绪,您的第一个点击处理程序应该可以工作。 所有方法,除了最后一个,都是正确的。首先是首选。在目标li 内的a 元素上是否有事件处理程序?也许a 上有处理程序,event.stopPropagination 方法调用? 您是否包含jquery.js 并将您的代码放入DOMReady 处理程序中? $(function() /* code here */ ); 【参考方案1】:

实际上它有效:)

$("#hide_filter").click(function()

alert('message');
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="nav navbar-nav navbar-left">
                    <li>
                        <a href="#"><img src="img/topbararrowback.png" ></a>
                    </li>
                    <li id="hide_filter">
                        <a href="#">Hide Filter</a>
                    </li>
                </ul>

【讨论】:

我正在使用 Bootsrtap 3。这有问题吗?【参考方案2】:

假设您已经添加了 jquery 库,您需要在加载 DOM 时附加事件。即关于 DOM 就绪事件:

$(function()//document ready function
 $("#hide_filter").click(function()
    alert('message');
 );
);

Working Demo

【讨论】:

【参考方案3】:

也许您的代码不是 eval。 尝试将您的代码放在带有这样的函数包装的 body 标记中

$(function()      //document ready function
 $("#hide_filter").on("click",function()
    console.log('message');
 );
);
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

【参考方案4】:

从您的第三个选项中删除 .selectedItems 选择器

$('ul li#hide_filter').click(function()

    //$("p").hide();
    alert('message');
);

从您的第四个选项中删除索引 0

$('#hide_filter').click(function()

    //$("p").hide();
    alert('message');
);

否则,您的 4 个选项是正确的并且可以正常工作。请确保您已在 ready 事件中编写了这些代码。

$(document).ready(function()
    $("#hide_filter").click(function()
    
        alert('message');
    );
);

【讨论】:

【参考方案5】:

也许 jquery 库有问题。它们是否与其他 javascript 冲突?

【讨论】:

以上是关于jQuery li 元素按 ID 选择的主要内容,如果未能解决你的问题,请参考以下文章

jquery选择器-备忘

jquery 筛选元素的常用方法

JQuery强大的操控标签能力

JS教程17jquery选择器

jQuery - 按元素 id 设置选择索引

jQuery