通过 jQuery,可以很容易地添加新元素/内容。
添加新的 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="jquery-1.11.1.js"></script><script>$(document).ready(function(){ $("#btn1").click(function(){ $("#test1").prepend("<b>Before</b>"); }); $("#btn2").click(function(){ $("#test1").append("<i>After</i>"); }); $("#btn3").click(function(){ $("#test2").before("<b>Before</b>"); }); $("#btn4").click(function(){ $("#test2").after("<i>After</i>"); });});</script></head><body><button id="btn1">在范特西前面添加文本</button><button id="btn2">在范特西后面添加文本</button><button id="btn3">在依然范特西前面添加文本</button><button id="btn4">在依然范特西后面添加文本</button><p id="test1">范特西</p><p id="test2">依然范特西</p></body></html>感觉贴图好麻烦。。。还是文字描述吧。。。点完上述4个button后,效果:
Before范特西After
Before依然范特西
After是不是发现了什么呀。。。继续,审查元素:
append() 和 prepend() 方法,在被选元素内(<p>...... ......</p>)插入内容;
after() 和 before() 方法,在被选元素外(......<p> </p>......)插入内容。
jQuery - 删除元素
通过 jQuery,可以很容易地删除已有的 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="jquery-1.11.1.js"></script>
<script>
$(document).ready(function(){
var txt1=$("<p>Text1</p>");
var txt2=$("<p></p>").text("Text2");
$("#btn1").click(function(){
$("p#text1").append(txt1);
});
$("#btn1").click(function(){
$("p#text2").append(txt2);
});
$("#btn2").click(function(){
$("p#text3").append($("<p>Text1</p>"));
});
$("#btn2").click(function(){
$("p#text4").append($("<p></p>").text("Text2"));
});
});
</script>
</head>
<body>
<p id=text1>This is a paragraph.</p>
<p id=text2>This is another paragraph.</p>
<button id="btn1">只能追加一次文本</button>
<p id=text3>This is a paragraph.</p>
<p id=text4>This is another paragraph.</p>
<button id="btn2">每次都能追加文本</button>
</body>
</html>
目前只是先解决疑问,具体的之后再学习。