我知道通过css规则管理间距会更好,但是如何使用jQuery在word之间插入空格?请考虑以下脚本(JSfiddle上的see it),该脚本无法正常工作(未插入空格):
HTML:
<div id='div1'>
<span>hello</span>
</div>
JS:
$("<span>my</span> ").insertAfter($("#div1").children("span").eq(0));
$("<span>friends</span> ").insertAfter($("#div1").children("span").eq(1));
alert($("#div1").html());
答案 0 :(得分:2)
使用append
:
$("#div1").append(
' ',
$('<span>').text('my'),
' ',
$('<span>').text('friends'),
' '
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='div1'>
<span>hello</span>
</div>
答案 1 :(得分:1)
一种方法是使用.before()
插入空格:
$("<span>my</span>").insertAfter($("#div1").children("span").eq(0)).before(" ")
$("<span>friends</span>").insertAfter($("#div1").children("span").eq(1)).before(" ")
JSFiddle演示:https://jsfiddle.net/c798vsn3/2/
答案 2 :(得分:1)
这一行:
$("<span>my</span> ")
创建一个没有结束空间的span元素,就像您在下面的代码片段中看到的那样。
您可以将所有链接减少到一行:
$("<span> my </span>")
.insertAfter($("#div1 span:first")).append($("<span>friends </span>"));
console.log('Test: -->' + $("<span>my</span> ")[0].outerHTML + '<--')
$("<span> my </span>").insertAfter($("#div1 span:first")).append($("<span>friends </span>"));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='div1'>
<span>hello</span>
</div>
&#13;
答案 3 :(得分:1)
你的问题不是JS,而是HTML,你在span元素之外添加空格,这没有任何效果。如果在span元素中添加空格(常规空间将起作用,实体名称不起作用),它将起作用。
除此之外,如果使用JQuery append()方法,可以稍微清理一下代码。这也将使句子在一个span元素中。
<span id="text">hello</span>
<script>
$("#text").append(" my");
$("#text").append(" friends");
</script>
答案 4 :(得分:0)
$("<span> my</span>").insertAfter($("#div1").children("span").eq(0));
$("<span> friends</span>").insertAfter($("#div1").children("span").eq(1));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='div1'>
<span>hello</span>
</div>
我更新了your fiddle。
您必须移动