我一直试图找到一种用html中断替换回车的方法。我认为这是cr13?不完全确定。我是编程新手。我有一个内容页面。所以我在内容区域设置了javascript。我在页面中有很多其他的javascripts。一个隐藏并显示列。所以我有办法找到列。但我想我需要找到细胞?只需要一列就可以了。我正在使用asp.net,使用vb.net,导入sql server 2008 db。不幸的是,这必须在javascript中完成,以避免点击按钮时页面重新加载。
感谢。
function showComments() {
Begincol_num = 8
Endcol_num = 9
Commentcol_num = 7
rows = document.getElementById("<%=GridView1.ClientID%>").rows;
for (i = 0; i < rows.length; i++) {
rows[i].cells[Begincol_num].style.display = "none";
rows[i].cells[Endcol_num].style.display = "none";
rows[i].cells[Commentcol_num].style.display = "";
}
}
这个想法是把js用这个函数中的br替换cr(如果可能的话)。我不知道从哪里开始在评论单元格中调用替换。目前评论栏中有30个评论单元格,只会随着它的增长而增长。点击一个不打算返回服务器的按钮调用此函数,这就是我所说的只有js。
我想尽可能清楚。我知道vb和asp但js对我没有意义。
感谢您的帮助。
答案 0 :(得分:0)
在javascript中,新行由“\ n”表示,即新行字符。如果要用<br />
替换新行,请使用字符串替换函数
var stringWithBR = stringVarName.replace("\n", "<br />");
答案 1 :(得分:0)
假设您的评论直接包含在单元格中,而其间没有其他标记,您可以这样做:
// ...
for (i = 0; i < rows.length; i++) {
rows[i].cells[Begincol_num].style.display = "none";
rows[i].cells[Endcol_num].style.display = "none";
var commentCell = rows[i].cells[Commentcol_num];
commentCell.style.display = "";
commentCell.innerHTML = commentCell.innerHTML.replace("/\n/g", "<br />");
}
// ...
但是,在显示评论时,做这样的事情并不是一个干净的解决方案。您应该直接在服务器上或在加载时执行此操作。否则,如果您不止一次地显示和隐藏评论,您将做一些不必要的工作,这些工作可能不是性能 - 但绝对是设计问题。
如果注释中的HTML标记内部存在换行符,则可能会发生所有问题。您可以使用innerText和textContent来阻止这种情况,但这会删除任何标记。更好的解决方案很复杂。