当append()时,不能逐个获取元素

时间:2016-09-01 07:31:52

标签: javascript jquery

我的项目中有这段代码。

    var quickmode_list = "";


    quickmode_list += '<div style="height:100px;width:500px;margin-top:0%;margin-right:0%"value="'
        + quicksetup_item
        +'"class="quickmode_block quick_list"><center style="margin-top:20px"><font size="5" style="margin-left:-14%;">'
        +quicksetup_item
        +'</font></center></div>';

       <div id="quickmode_table">
       </div>

我将此变量附加到像这样的标记

$('#quickmode_table').append(quickmode_list);

所以,它确实在浏览器中显示,它显示为class =&#34; quickmode_block&#34;,但当我alert($('.quickmode_block').length);

它归还我&#34; 0&#34;。如果执行类似#34; quickmode_block&#34;它会出现什么问题?但我不能上课吗?

2 个答案:

答案 0 :(得分:1)

这是因为DOM树无法在两条JavaScript指令之间刷新(追加和警告)。

更好的解决方案是使用元素创建者(它们在jQuery中),然后您可以使用开箱即用的新元素的句柄,您可以访问它并计算它们的数量。它比生成html字符串和查询树更加性能友好。

答案 1 :(得分:0)

如果quicksetup_item没有以空格结尾,那么class属性之前就没有空格。

根据HTML规范(https://www.w3.org/TR/html5/syntax.html#start-tags):&#34;属性必须通过一个或多个空格字符彼此分开。&#34;。有时,浏览器会通过在属性之间自动插入空格来容忍此语法错误。在这种情况下,代码将成功运行。

但是,建议遵循HTML规范并添加空格,而不是依赖浏览器容差。