addclass()在控制台中工作但不在脚本中工作

时间:2014-02-06 10:54:40

标签: javascript jquery css

我已经动态创建了一个div。试图将通过jquery扩展的类添加为不起作用。但是我在控制台中尝试了代码,它的工作正常。

代码如下:

追加元素名称

var menuId= '#itemMenu' + indexOfElement;

然后尝试了这个

$(menuId).addClass('expanded');

当我在控制台中尝试以下时

e.g。 $('#itemMenu5').addClass('expanded')

工作正常..

3 个答案:

答案 0 :(得分:1)

var menuId= 'itemMenu' + indexOfElement;
var element = document.getElementById(menuId);
element.className += ' expanded';   //note the space

答案 1 :(得分:1)

您可以使用此示例向动态DIV添加类:

<强> HTML

<div id="static">I am static</div>

<强> CSS

.expanded {
    font-size: 20px;   
}
.never-added {
    color: red;
}

<强> JQuery的

var indexOfElement = 5;
var menuId = '#itemMenu' + indexOfElement;

//store the new DIV in a var
var newDiv = $('<div/>').text('I am dynamic').attr('id', menuId);
newDiv.insertAfter('#static');

//add the class later
newDiv.addClass('expanded');

//never added
$('#itemMenu5').addClass('never-added');

<强> Here is a Demo

动态创建DIV,然后使用您指定的ID将$('#itemMenu5').addClass('expanded');的类应用到它,因为DOM还不知道新元素。

将新元素分配给变量将允许您修改它。

编辑:
我添加了一个示例,其中显示了never-added类,它永远不会被添加到新DIV中。

答案 2 :(得分:0)

您可以尝试:

$("#menuId").addClass('expanded');  try directly 
相关问题