0

我一直在尝试找到一种方法来用 html 中断替换回车。我认为是cr13?不完全确定。我是编程新手。我有一个内容页面。所以我在内容区域设置了javascript。我在页面中有许多其他的 javascripts。一个隐藏和显示列。所以我有办法找到列。但我想我需要找到细胞?只有一列需要这样做。我正在使用带有 vb.net 的 asp.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 对我来说毫无意义。

感谢您的帮助。

4

2 回答 2

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 标记内有换行符,则可能会出现所有问题。您可以通过使用innerTexttextContent来防止这种情况,但这会删除任何标签。更好的解决方案是复杂的。

于 2012-06-13T10:48:51.180 回答
0

在 javascript 中,换行符由换行符“\n”表示。如果要用 a 替换新行<br />,请使用字符串替换功能

var stringWithBR = stringVarName.replace("\n", "<br />");
于 2012-05-10T01:21:43.440 回答