该代码应该在每次单击文本时添加一行新文本。根本不使用\ 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>
答案 0 :(得分:1)
您应按照注释中的建议使用<br/>
,但必须使用html()
而不是text()
。
$(this).html(oldText +"<br/> Click added some text! ");
不同之处在于html():
设置匹配元素集中每个元素的HTML内容。
(请注意 HTML ), 与text()不同的是:
将匹配元素集中每个元素的内容设置为指定的文本。
答案 1 :(得分:1)
您的代码有几处错误-
<br>
.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()
仅显示纯文本