簡體   English   中英

jQuery addClass()/ removeClass()無法正常工作

[英]jQuery addClass() / removeClass() not working

<ul>
    <li class="selected"></li>
    <li></li>
    <li></li>
</ul>

那是我的html。 我現在使用的選擇器是:

    $("ul li:eq(0)").removeClass('selected');
    $("ul li:eq(1)").addClass('selected');

問題是我無法從這些元素中添加或刪除“選定”類。 html和jquery都非常簡單,我可以找到的所有示例都以相同的方式完成了所有操作,包括官方jQuery文檔。 (如果需要的話,腳本會在body標簽之前加載)

為什么不能刪除和添加這樣的類?

整個html頁面在這里

可能是因為您忘記添加$(document).ready() ,還請確保已添加jquery.min.js文件

$(document).ready( function () {
    $("ul li:eq(0)").removeClass('selected');
    $("ul li:eq(1)").addClass('selected');
});

該代碼看起來正確,問題必須出在其他地方。 如何進行調試:

  1. 查看選擇器匹配多少個元素:

     console.log($("ul li:eq(1)").length); 

    如果看到0,則選擇器不匹配任何內容。

  2. 匹配哪個元素?

     console.log($("ul li:eq(1)")[0]); 

    大多數瀏覽器都允許檢查控制台中的元素。

一個典型的問題是您的代碼在元素存在之前就已執行。 在簡單的情況下,您只需要在DOM准備好后運行代碼:

$(function () {
    ...DOM is now ready...
});

但是有時,其他腳本會創建元素。 如果您是這種情況,則需要告訴我們您用於構建/操作DOM的框架和腳本。

有關:

$("ul li:eq(0)").removeClass('selected');
$("ul li:eq(1)").addClass('selected');

為我工作( http://jsfiddle.net/orlando/rhtqA/

但是,是的,您需要等到DOM准備使用jquery進行操作時

$(function () {
    $("ul li:eq(0)").removeClass('selected');
    $("ul li:eq(1)").addClass('selected');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM