jquery - 如何在动态创建的 DOM 元素上使用 addClass/removeClass

标签 jquery jquery-selectors

我有一个在 document.ready() 中调用的函数来创建跨度。

function configureContentSelector() {
  for (j=0; j<centerContent.length; j++)
    {
        var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span'" + j + ">" + j  + "</span>";
        $("#contentSelectorArea").html($("#contentSelectorArea").html() + content); 

   }

请注意,跨度的 ID 为 span0、span1 等。

在触发与跨度无关的事件时调用的单独函数中,我想操作跨度类(addClass()removeClass())

$("#" + "span" + i).removeClass("contentSelector");
$("#" + "span" + i).addClass("contentSelectorSelected");

但是,这不起作用。我相信这个问题与跨度是动态创建的事实有关,但我不知道如何解决这个问题。

预先感谢您的帮助。

最佳答案

您创建了错误的id(它们都有 id=span):

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span'" + j + ">" + j  + "</span>";

试试这个:

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span" + j + "'>" + j  + "</span>";

顺便说一句,您的报价应该颠倒:

var content = '<span class="contentSelector" onclick="changeContent(' + j + ')" id="span' + j + '">' + j  + '</span>';

关于jquery - 如何在动态创建的 DOM 元素上使用 addClass/removeClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11417430/

相关文章:

javascript - 绝对中心(垂直和水平) "Responsive"它不起作用

javascript - 如何获得完整页面高度包括我可以使用滚动看到的内容?

javascript - jQuery中在另一个点击事件下实现点击事件

javascript - 使用 jQuery select() 选择一个 div 的内容

jquery - 如何显示当前li的唯一子节点并隐藏其他li子节点

javascript - 如何触发 JQuery 对话框以从 MVC 分部 View 的 Controller 关闭?

javascript - jQuery 使用 LI 中的超链接从 UL 中删除 LI

jquery - 使用 jQuery 在悬停时选择父级的同级

javascript - 为什么 jQuery 不删除我的类?

jQuery - 如何获取不带前缀的选择器的字符串值