我的项目中有这段代码。
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;它会出现什么问题?但我不能上课吗?
答案 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规范并添加空格,而不是依赖浏览器容差。