首页 > 代码库 > JavaScript(20)jQuery HTML 加入和删除元素

JavaScript(20)jQuery HTML 加入和删除元素

jQuery - 加入元素
通过 jQuery,能够非常easy地加入新元素/内容。

加入新的 HTML 内容的四个 jQuery 方法:
  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容

jQuery append() 方法在被选元素的结尾插入内容。
$("p").append("Some appended text.");

jQuery prepend() 方法在被选元素的开头插入内容。
$("p").prepend("Some prepended text.");

jQuery after() 方法在被选元素之后插入内容。
$("img").after("Some text after");

jQuery before() 方法在被选元素之前插入内容。
$("img").before("Some text before");

这样能看出来前两个和后两个有什么差别么。。。反正我是要琢磨琢磨。。。上代码分析:
<!DOCTYPE html>
<html>
<head>
<script src=http://www.mamicode.com/"jquery-1.11.1.js"></script>>感觉贴图好麻烦。。。还是文字描写叙述吧。。。点完上述4个button后,效果:

Before范特西After

Before

依旧范特西

After

是不是发现了什么呀。。。继续,审查元素:

append() 和 prepend() 方法,在被选元素内(<p>...... ......</p>)插入内容;
after() 和 before() 方法,在被选元素外(......<p> </p>......)插入内容。



jQuery - 删除元素
通过 jQuery,能够非常easy地删除已有的 HTML 元素。

如需删除元素和内容,一般可使用下面两个 jQuery 方法:
  • remove() - 删除被选元素(及其子元素)
  • empty() - 从被选元素中删除子元素

jQuery remove() 方法删除被选元素及其子元素。
$("#div1").remove();

jQuery empty() 方法删除被选元素的子元素。
$("#div1").empty();

过滤被删除的元素
jQuery remove() 方法也能够接受一个參数,同意对被删元素进行过滤。
该參数能够是不论什么 jQuery 选择器的语法。
以下的样例删除 class="italic" 的全部 <p> 元素:
$("p").remove(".italic");
这个地方我思考了一下,“删除 class="italic" 的全部 <p> 元素”和“删除 <p> 的全部 class="italic" 元素”是一样的。。。即:
$(".italic").remove("p");
那么 empty() 方法也能够接受一个參数不?答案是否定的!


另外另一个问题,看到这样一段代码:
var txt2=$("<p></p>").text("Text.");   // 以 jQuery 创建新元素
为什么能够写成上述形式呢?不太清楚当中的规则。。。

(20140603追加对上述问题的理解)

jQuery 核心函数:jQuery(html,[ownerDocument])
依据提供的原始 HTML 标记字符串,动态创建由 jQuery 对象包装的 DOM 元素。同一时候设置一系列的属性、事件等。

你能够传递一个手写的 HTML 字符串,或者由某些模板引擎或插件创建的字符串,也能够是通过 AJAX 载入过来的字符串。可是在你创建 input 元素的时会有限制,能够參考第二个演示样例。当然这个字符串能够包括斜杠 (比方一个图像地址),还有反斜杠。(这些如今还不太好理解,能够直接看后面的。)
当你创建单个元素时,请使用闭合标签或 XHTML 格式。比如,创建一个 span ,能够用$("<span/>") 或$("<span></span>") ,但不推荐 $("<span>")。在jQuery 中,这个语法等同于$(document.createElement("span")) 。

上述代码等同于:
var txt2=$("<p>Text.</p>");   // 以 jQuery 创建新元素

使用变量和直接使用$("<></>") 是不一样的。最后放一段代码作为总结:
<!DOCTYPE html>
<html>
<head>
<script src=http://www.mamicode.com/"jquery-1.11.1.js"></script>>
眼下仅仅是先解决疑问,详细的之后再学习。