目标:
<div id="g_1" class="grp">
<span id="g_i_1" class="grp_icon"></span>
<span id="g_mng_1" class="grp_name"></span>
<span id="g_des_1" class="grp_des"></span>
<span id="g_lock_1" class="grp_lock"></span>
<span id="g_vis_1" class="grp_vis"></span>
</div>
jquery代码:
$('<div/>', {id: 'g_'+ e.GID, class: 'grp'})
.append($('<span/>'), {id: 'g_i_'+ e.GID, class: 'grp_icon'})
.append($('<span/>'), {id: 'g_mng_'+ e.GID, class: 'grp_name'})
.append($('<span/>'), {id: 'g_des_'+ e.GID, class: 'grp_des'})
.append($('<span/>'), {id: 'g_lock_'+ e.GID, class: 'grp_lock'})
.append($('<span/>'), {id: 'g_vis_'+ e.GID, class: 'grp_vis'})
结果:
<div id="g_1" class="grp">
<span></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
为什么要为父元素创建id和class属性,而不是为子元素创建,但是正在创建子元素?
答案 0 :(得分:1)
具有属性的对象应该位于创建该元素的$()
的参数中。 .append()
没有采用属性参数,只需要追加元素。
var e = {GID: 1};
var div = $('<div/>', {id: 'g_'+ e.GID, "class": 'grp'})
.append($('<span/>', {id: 'g_i_'+ e.GID, "class": 'grp_icon'}))
.append($('<span/>', {id: 'g_mng_'+ e.GID, "class": 'grp_name'}))
.append($('<span/>', {id: 'g_des_'+ e.GID, "class": 'grp_des'}))
.append($('<span/>', {id: 'g_lock_'+ e.GID, "class": 'grp_lock'}))
.append($('<span/>', {id: 'g_vis_'+ e.GID, "class": 'grp_vis'}));
console.log(div[0].outerHTML);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
此外,在将class
用作属性名称时,应引用class
。 dataType: 'json',
是一个Javascript关键字,如果您不引用它,某些浏览器会报告语法错误。