html字符串拼接

jQuery("#tbody_detail").append("<tr>");jQuery("#tbody_detail").append("<tdstyle=\"wid... jQuery("#tbody_detail").append("<tr>");
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 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
通过下面方法即可:
//构造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>';
禹水
推荐于2018-02-26 · TA获得超过599个赞
知道小有建树答主
回答量:160
采纳率:50%
帮助的人:66.6万
展开全部

假设你的“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>");                      

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hachi1030
推荐于2017-11-27 · TA获得超过121个赞
知道小有建树答主
回答量:132
采纳率:100%
帮助的人:122万
展开全部
因为你append的时候它是智能帮你生成tr的标签的。你要做的是先生成tr,其中append td,然后再在指定元素上append 这个tr
追问
大神,能写是示例吗?
追答
那我用jQuery写给你吧。

var tr = $("");
$("", {width: "80%"}).appendTo(tr);

$(tr).appendTo($('#tbody_detail'));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seohyun328
2018-03-31 · TA获得超过1.2万个赞
知道小有建树答主
回答量:89
采纳率:100%
帮助的人:1.3万
展开全部
  1. 所有项都直接用字符串拼接的方式

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>';

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2acf15a
2015-07-14 · TA获得超过1534个赞
知道小有建树答主
回答量:1123
采纳率:81%
帮助的人:267万
展开全部
jquery append:向每个匹配的元素内部追加内容。
所以你append的元素错误了,应该是
var $tr = $("<tr></tr>");

$tr.append("<td style=\"width:80%;\">" + this.Name + "</td>");
$("#tbody_detail").append($tr);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式