jQuery 添加新内容有以下四个方法:
-
append() - 在被选元素的结尾插入内容
-
prepend() - 在被选元素的开头插入内容
-
after() - 在被选元素之后插入内容
-
before() - 在被选元素之前插入内容
append() 方法在被选元素的结尾插入内容(仍然该元素的内部)。
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("p").append(" <b>追加文本</b>。");
});
$("#btn2").click(function(){
$("ol").append("<li>追加列表项</li>");
});
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另外一个段落。</p>
<ol>
jQuery prepend() 方法在被选元素的开头插入内容。
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("p").prepend("<b>在开头追加文本</b>。 ");
});
$("#btn2").click(function(){
$("ol").prepend("<li>在开头添加列表项</li>");
});
});
</script>
</head>
<body>
<p>这是一个段落。</p>
<p>这是另外一个段落。</p>
<ol>
<li>列表 1</li>
<li>列表 2</li>
<li>列表 3</li>
</ol>
<button id="btn1">添加文本</button>
<button id="btn2">添加列表项</button>
</body>
我们只在被选元素的开头/结尾插入文本/HTML。append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。
<script>
function appendText(){
var txt1="<p>文本。</p>"; // 使用 HTML 标签创建文本
var txt2=$("<p></p>").text("文本。"); // 使用 jQuery 创建文本
var txt3=document.createElement("p");
txt3.innerHTML="文本。"; // 使用 DOM 创建文本 text with DOM
$("body").append(txt1,txt2,txt3); // 追加新元素
}
</script>
</head>
<body>
<p>这是一个段落。</p>
<button onclick="appendText()">追加文本</button>
</body>
jQuery after() 方法在被选元素之后插入内容。
jQuery before() 方法在被选元素之前插入内容。
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("img").before("<b>之前</b>");
});
$("#btn2").click(function(){
$("img").after("<i>之后</i>");
});
});
</script>
</head>
<body>
<img src="/images/logo.png" >
<br><br>
<button id="btn1">之前插入</button>
<button id="btn2">之后插入</button>
</body>
after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。
在下面的例子中,我们创建若干新元素。这些元素可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建。然后我们通过 after() 方法把这些新元素插到文本中(对 before() 同样有效):
<script>
function afterText(){
var txt1="<b>I </b>"; // 使用 HTML 创建元素
var txt2=$("<i></i>").text("love "); // 使用 jQuery 创建元素
var txt3=document.createElement("big"); // 使用 DOM 创建元素
txt3.innerHTML="jQuery!";
$("img").after(txt1,txt2,txt3); // 在图片后添加文本
}
</script>
</head>
<body>
<img src="/images/logo2.png" >
<br><br>
<button onclick="afterText()">之后插入</button>
</body>
append/prepend和after/before有什么区别呢
append/prepend 是在选择元素内部嵌入。
after/before 是在元素外面追加。
append
<p>
<span class="s1">s1</span>
</p>
<script>
$("p").append('<span class="s2">s2</span>');
</script>
--------------------------------------------
<p>
<span class="s1">s1</span>
<span class="s2">s2</span>
</p>
after
<p>
<span class="s1">s1</span>
</p>
<script>
$("p").after('<span class="s2">s2</span>');
</script>
-------------------------------------------
<p>
<span class="s1">s1</span>
</p>
<span class="s2">s2</span>
//初始化字典数据
$Core.DicCache.initDictionary("installdevName,customerType,publicserviceName,userdevState", function () {
var approveState = data.data.approveState;
var appendRow = "";
if("0"!=approveState&&"1"!=approveState&&""!=approveState){
appendRow ="<tr align='center' id='appendRow'> <td width= '16% ' colspan='3'>"+data.data.approveUserName+
"</td><td id='stateu' width= '16% ' colspan='3'>"+$Core.DicCache.get("userdevState")[approveState]+
"</td><td width= '16% ' colspan='3'>"+data.data.approveAdvice+
"</td> <td width= '20% ' colspan='3'>"+data.data.approveTime+
"</td></tr>"
$("#newRow").after(appendRow);
if("4"==approveState||"5"==approveState){
var appendRowT = "<tr align='center'> <td width= '16% ' colspan='3'>"+data.data.approvePersonNameSecond+
"</td><td width= '16% ' colspan='3'>"+$Core.DicCache.get("userdevState")[approveState]+
"</td><td width= '16% ' colspan='3'>"+data.data.approveAdviceSecond+
"</td> <td width= '20% ' colspan='3'>"+data.data.approveTimeSecond+
"</td></tr>"
$("#appendRow").after(appendRowT);
$("#stateu").html("审批通过");
}
}
});
序列生成
<table cellspacing="0" cellpadding="0" id="col">
<tr id="newRow">
<td width="20" class="tit">序号</td>
<td width="160" class="tit">验收项目名称</td>
<td width="120" class="tit">生产厂家</td>
</tr>
<tr>
<td>1</td>
<td>气化器</td>
<td></td>
</tr>
</table>
var oTable = $("#col");
for(var i=1,a=0;i<oTable[0].rows.length;i++){
oTable[0].rows[i].cells[0].innerHTML = (++a);
}
var dictionaryItems = oTable[0].rows[oTable[0].rows.length-1];
dictionaryItems.id="dicItem";
appendTo()
方法在被选元素的结尾(仍然在内部)插入指定内容。
var $li = $('#' + file.id),
$percent = $li.find('.progress span');
//console.log("percentage:", percentage);
// 避免重复创建
if (!$percent.length) {
$percent = $('<p class="progress"><span></span></p>')
.appendTo($li)
.find('span');
}
$( "input" ).focus(function() {
$( "<span>获取焦点!</span>" ).appendTo( "body" ).fadeOut( 1000 );
});
appendChild() 方法向节点添加最后一个子节点。
<ul id="myList1"><li>Coffee</li><li>Tea</li></ul>
<ul id="myList2"><li>Water</li><li>Milk</li></ul>
<button onclick="myFunction()">亲自试一试</button>
<script>
function myFunction()
{
var node=document.getElementById("myList2").lastChild;
document.getElementById("myList1").appendChild(node);
}
</script>