jQuery换行

时间:2018-09-13 10:03:13

标签: jquery html newline

该代码应该在每次单击文本时添加一行新文本。根本不使用\ n。使用<br/>仅适用于首次点击。

$(document).ready(function() {
  $('#clickMe').click(function() {
    var oldText = $(this).text();
    $(this).text(oldText +"\n Click added some text! ");
  });
});
<!DOCTYPE html>
<html>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <body>
    <div id="clickMe">
      Click here!!
    </div>
  </body>
</html>

5 个答案:

答案 0 :(得分:1)

您应按照注释中的建议使用<br/>,但必须使用html()而不是text()

$(this).html(oldText +"<br/> Click added some text! ");

不同之处在于html()

  

设置匹配元素集中每个元素的HTML内容。

(请注意 HTML ), 与text()不同的是:

  

将匹配元素集中每个元素的内容设置为指定的文本。

答案 1 :(得分:1)

您的代码有几处错误-

  1. html换行符为<br>
  2. 您需要将.text更改为.html才能使用br:

$('#clickMe').click(function() {
  $(this).html(function(index, oldHtml) {  // use a function if you are appending then you don't need to get the old html seperately
    return oldHtml + "<br>Click added some text! "
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="clickMe">
  Click here!!
</div>

答案 2 :(得分:1)

使用

var oldText = $(this).html();
$(this).html(oldText +" <br/> Click added some text! ");

确实可以解决问题,但这不是一个好的解决方案,因为变量每次单击都会增加(因为'oldtext每次单击都会增加)。这是不必要的。 使用.append()函数instad:

$('#clickMe').click(function() {
  $(this).append(" <br> Click added some text! ");
});

答案 3 :(得分:0)

<!DOCTYPE html>
<html>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
    $('#clickMe').click(function() {
        var oldText = $(this).html();
        $(this).html(oldText +" <br/> Click added some text! ");
        });
    });
    </script>
    <body>
    <div id="clickMe">
        Click here!!
    </div>
    </body>
</html>

答案 4 :(得分:0)

def flatten(l):
    if isinstance(l, list):
        for x in l:
            yield from flatten(x)
    else:
        yield l

>>> list(flatten(example))
['a', 'c', 1, 3, 'f', 7, 4, '4', {'lalala': 111}]

$('#clickMe').click(function() { var oldText = $(this).html(); $(this).html(oldText +"<br> Click added some text! "); }); }); 替换为.text(),就像我们使用.html()一样,<br>将呈现html组件,而html()仅显示纯文本