当使用类名作为元素定义的一部分时,jQuery append不起作用

时间:2011-12-02 09:30:37

标签: jquery css

当试图将一个div附加到另一个时我发现这不起作用:

 var htmlCell = jQuery('<div id="ddd"></div>').attr({ 'className': "basecell" }).css({ 'top': 165 + 'px' }).css({ 'left': 335 + 'px' }).css({ 'background-color': '#ffffff' });
 $("#dtest").append(htmlCell);

但这样做:

 var htmlCell = jQuery('<div id="ddd"></div>').css({ 'height': 165 + 'px' }).css({ 'width': 165 + 'px' }).css({ 'position': 'absolute' }).css({ 'top': 165 + 'px' }).css({ 'left': 335 + 'px' }).css({ 'background-color': '#ffffff' });
 $("#dtest").append(htmlCell);

使用下面的CSS:

#dtest
{    
    position: relative;
    top: 0px;
    left: 50px;
    height: 469px;
    width: 685px;
    z-index: 86;
    background-color: #000000;
}
.basecell
{
    position: absolute;
    width: 116px;
    height: 116px;
    background-color: #ffffff;

}

在这两种情况下,#dtest的children()。长度为1,但在使用类的语句中,它是不可见的。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

var htmlCell = jQuery('<div id="ddd"></div>').addClass("basecell").css({ 'top': 165 + 'px' }).css({ 'left': 335 + 'px' }).css({ 'background-color': '#ffffff' });
$("#dtest").append(htmlCell);

你也可以这样做:

$('<div id="ddd">').addClass("basecell").css({ 'top': 165 + 'px', 'left': 335 + 'px', 'background-color': '#ffffff }).appendTo($("#dtest"));

没有名为className的属性。如果要使用jQuery将类名设置为元素,则必须使用$(elem).addClass('classname')方法。相反,您可以使用$(elem).removeClass('classname')删除课程。要删除所有课程,请使用$(elem).removeClass()

答案 1 :(得分:0)

className不是您要查找的属性。向前走。 它应该是class或使用像Calvin建议的jQuery的addClass方法。

答案 2 :(得分:0)

我将分享这一点,以防万一发生在桌面和移动设备上,并使用Bootstrap来隐藏和显示一些元素。

使用append或任何修改HTML的函数时,请确保您正在操作此刻可见的元素。

对我来说,追加不起作用,我的浏览器窗口宽度为300像素。经过4个小时的研究寻找答案为什么附加不起作用,我看看我的HTML,分别看到两个表'visible-xs'和'hidden-xs',我想知道片刻。当我最大化浏览器...瞧!列表中包含了所有预期的附加内容。我正在用'hidden-xs'编辑表格,但是用'visible-xs'类观看表格。

不要像我一样! :)