html字符串拼接
jQuery("#tbody_detail").append("<td style=\"width:80%;\">" + this.Name + "</td>");
jQuery("#tbody_detail").append("</tr>")
这样拼接出的html代码是
<tr></tr>
<td style="width:80%;">XXXX</td>
我想要的是
<tr>
<td style="width:80%;">XXXX</td>
</tr>
为什么会这样? 展开
2016-01-10 · 做真实的自己 用良心做教育
//构造100条数据
var datas = [];
for(var i = 1; i <=100; i++){
datas.push('item' + i);
}
第一种最直接的,也是初学者就会想到的方式,所有项都直接用字符串拼接的方式,当然效率也最差了
var resultHtml = '';
for(var i = 0, len = datas.length; i < len; i++){
resultHtml += '<li>' + datas[i] + '</li>';
}
resultHtml = '<ul>' + resultHtml + '</ul>'
第二种稍微高级一点,有考虑过效率问题的基本会采用这种,用数组的方式把每一项压进去,最后join一下
var resultHtml = '';
var tempDatas = [];
for(var i = 0, len = datas.length; i < len; i++){
tempDatas.push('<li>' + datas[i] + '</li>');
}
resultHtml = '<ul>' + tempDatas.join('') + '</ul>';
第三种其实也简单,只是有些人可能会想不到,当然效率也最高
var resultHtml = datas.join('</li><li>');
resultHtml = '<ul><li>' + resultHtml + '</li></ul>';
假设你的“tbody_detail”是一个div标签
<div id="#tbody_detail"></div>
那么
jQuery("#tbody_detail").append("<tr>");
后的效果是:
<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script>
$(document).ready(function(){
$("#tbody_detail").append("<tr>");
var str = $("#tbody_detail").html();
alert(str);
setTimeout(function(){
$("#aaa").html(str);
},500);
});
</script>
</head>
<body>
<div id="tbody_detail"></div>
<div id="aaa"></div>
</body>
</html>
运行后得出alert的内容是<tr></tr>;
相当于jquery自动补全了标签,所以你应该写:
jQuery("#tbody_detail").append("<tr></tr>");
jQuery("#tbody_detail tr").html("<td style=\"width:80%;\">" + this.Name + "</td>");
大神,能写是示例吗?
那我用jQuery写给你吧。
var tr = $("");
$("", {width: "80%"}).appendTo(tr);
$(tr).appendTo($('#tbody_detail'));
所有项都直接用字符串拼接的方式
var resultHtml = '';
for(var i = 0, len = datas.length; i < len; i++)
{resultHtml += '<li>' + datas[i] + '</li>';}
resultHtml = '<ul>' + resultHtml + '</ul>'
2.效率高,但是难度较大
var resultHtml = datas.join('</li><li>');
resultHtml = '<ul><li>' + resultHtml + '</li></ul>';
所以你append的元素错误了,应该是
var $tr = $("<tr></tr>");
$tr.append("<td style=\"width:80%;\">" + this.Name + "</td>");
$("#tbody_detail").append($tr);