我有一个像这样的HTML:
<div id="leftBar">
<span>ad</span>
</div>
我也有这个变量:
var msg = '<span>something</span>';
我想在msg
元素的开头推送#leftBar
变量。我怎么能这样做?
这是预期的结果:
<div id="leftBar">
<span>something</span>
<span>ad</span>
</div>
注意.html()
无法按预期工作。因为$('#leftBar').html(msg);
删除了我需要保留的现有<span>
。
答案 0 :(得分:3)
Javascript提供Node.insertBefore()方法
你可以试试这个:
var left = document.getElementById('leftBar')
var span = document.createElement("span");
span.innerHTML = "something"
left.insertBefore(span, left.childNodes[0]);
jsfiddle example
答案 1 :(得分:1)
jQuery prepend()
方法就是解决方案。 append()
方法本质上类似,但它将元素添加为最后一个元素。
答案 2 :(得分:1)
使用jquery prepend从头开始添加新元素(作为第一个子元素)。
var msg = '<span>something</span>';
$('#leftBar').prepend(msg)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="leftBar">
<span>ad</span>
</div>
答案 3 :(得分:1)
leftBar.innerHTML=msg+leftBar.innerHTML;
尝试演示:js fiddle
答案 4 :(得分:1)
$(document).ready(function() {
var msg = '<span>something</span><br>'; // Your variable -- but i added '<br>' --
$('button[rel="add"]').click(function() {
$('#leftBar').append( msg ); // For add after last element within #leftBar
//$('#leftBar').append( msg ); // For add before first element within #leftBar
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="leftBar">
<span>ad</span>
<br>
</div>
<button rel="add">Add +</button>
&#13;