3

我有一个在 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); 

   }

请注意,跨度被标识为 span0、span1 等。

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

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

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

提前感谢您的帮助。

4

4 回答 4

3

您创建了错误id的 s(它们都有 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>';
于 2012-07-10T16:13:44.933 回答
3

我认为这里有错误

id='span'" + j + ">"

改成

id='span" + j + "'>"

并使用

$("#contentSelectorArea").append(content);
于 2012-07-10T16:14:56.197 回答
2

我会删除 ID 并使用data-*属性(无论如何,您的 ID 声明存在语法错误)。

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

然后您可以使用data-*属性进行选择:

$("span[data-spanid='" + i + "']");
于 2012-07-10T16:13:48.560 回答
1

您在创建控件时遇到了一个简单的错误。检查创建的 id 属性中的引号。

使用它,它会正常工作。

var content = "<span class='contentSelector' onclick='changeContent(" + j + ")' id='span" + j + "'>" + j  + "</span>";
于 2012-07-10T16:15:36.847 回答