4、jQuery修改DOM(Head First笔记)
2017-06-10 20:42
281 查看
jQuery remove 与 jQuery detach
jQuery parent
jQuery children
jQuery prev
jQuery next
jQuery replaceWith
jQuery first过滤器
jQuery eq过滤器
jQuery last过滤器
jQuery slice过滤器
jQuery filter过滤器
jQuery not过滤器
remove()跟detach()都是从DOM中删除元素,但是他们是有区别的。
remove()方法删除选择的元素,但是它不会保持删除元素的数据和事件。
remove()参考资料
detach()方法删除选择的元素,这个元素可以存在一个变量中,用于重新插入。它会保持删除元素的数据和事件。
detach()参考资料
当然如果仅仅只是想删除元素的内容的话,可以使用empty()这个方法。
empty()参考资料
回忆一下DOM获取父元素的方法:
HTML DOM parentNode Property 参考资料
DOM获取元素的子元素
HTML DOM childNodes Property 参考资料
DOM获取前一个兄弟元素:
HTML DOM previousSibling Property
DOM获取后一个兄弟元素
HTML DOM nextSibling Property
jQuery before()与jQuery after()
before()将新内容插入到选择的元素前面,而after()则是将新内容插入到选择元素的后面。
回顾一下DOM中如何实现类似的功能:
DOM中提供了一个insertBefore()的方法,可以将一个新的元素插入到一个现有元素的前面。
DOM中并没有insertAfter()这个方法,因此可以利用《JavaScript DOM编程艺术》中提到的方法解决。
对应DOM中firstChild()
对应DOM中的childNodes[X]
对应DOM中lastChild
jQuery parent
jQuery children
jQuery prev
jQuery next
jQuery replaceWith
jQuery first过滤器
jQuery eq过滤器
jQuery last过滤器
jQuery slice过滤器
jQuery filter过滤器
jQuery not过滤器
jQuery remove() 与 jQuery detach()
$("img#thumbnail").remove(); $("img#thumbnail").detach();
remove()跟detach()都是从DOM中删除元素,但是他们是有区别的。
remove()方法删除选择的元素,但是它不会保持删除元素的数据和事件。
remove()参考资料
detach()方法删除选择的元素,这个元素可以存在一个变量中,用于重新插入。它会保持删除元素的数据和事件。
detach()参考资料
当然如果仅仅只是想删除元素的内容的话,可以使用empty()这个方法。
empty()参考资料
jQuery parent()
利用jQuery parent()获取选择元素的父元素$(".fish").parent();
回忆一下DOM获取父元素的方法:
document.getElementById("myLi").parentNode;
HTML DOM parentNode Property 参考资料
jQuery children()
利用jQuery children()可以获取选择的元素的子元素$(".menu_list").children();
DOM获取元素的子元素
document.body.childNodes;
HTML DOM childNodes Property 参考资料
jQuery prev()
利用prev()可以获取选择的元素前一个相邻的元素$(".fish").prev();
DOM获取前一个兄弟元素:
document.getElementById("item2").previousSibing;
HTML DOM previousSibling Property
jQuery next()
获取选择元素的后一个相邻元素$(".fish").next();
DOM获取后一个兄弟元素
document.getElementById("item1").nextSibling
HTML DOM nextSibling Property
jQuery replaceWith()
replaceWith()用于替换元素,下面这个例子<h1>My Menu</h1>将完全替换h2元素
$("h2").replaceWith("<h1>My Menu</h1>");
jQuery before()与jQuery after()
before()将新内容插入到选择的元素前面,而after()则是将新内容插入到选择元素的后面。
$(".meat").before("<li>Tofu</li>"); $(".meat").after("<li>Tofu</li>");
回顾一下DOM中如何实现类似的功能:
DOM中提供了一个insertBefore()的方法,可以将一个新的元素插入到一个现有元素的前面。
parentElement.insertBefore(newElement, targetElement);
DOM中并没有insertAfter()这个方法,因此可以利用《JavaScript DOM编程艺术》中提到的方法解决。
function insertAfter(newElement, targetElement) { var parent = targetElement.parentNode; if (parent.lastChild == targetElement) { parent.appendChild(newElement); } else { parent.insertBefore(newElement, targetElement.nextSibling); } }
jQuery first()过滤器
first()方法,除了所选元素中第一个元素以外,first()方法会过滤掉所有其他元素。$(".menu_list").children().first();
对应DOM中firstChild()
node.firstChild
jQuery eq()过滤器
除了所选元素中索引号等于括号中内容的元素之外,eq()将会过滤掉所有其它元素。$(".menu_list").children().eq(0);
对应DOM中的childNodes[X]
document.getElementsByTagName("body")[0].childNodes[0];
jQuery last()过滤器
除了所选元素中最后一个元素以外,last()方法会过滤掉所有其他元素。$(".menu_list").children().last();
对应DOM中lastChild
node.lastChild
jQuery slice()过滤器
除了索引介于括号中指定索引号之间的元素之外,slice方法会过滤掉所有其他元素。例如例子中的,就只会保留index为2的元素$(".menu_list").children().slice(1,3);
jQuery filter()过滤器
除了与括号中指定选择器匹配的元素外,filter方法会过滤掉所有其他元素。$(".menu_list").parents().filter(".organic");
jQuery not()过滤器
not方法会过滤掉与括号中指定选择器匹配的所有元素。$(".left_col").children().not("h4");
相关文章推荐
- 使用jquery当页面打开时,将修改样式的点击事件绑定到Dom
- jquery 获取、添加、修改、移除DOM属性
- 使用jquery当页面打开时,将修改样式的点击事件绑定到Dom
- jQuery 如何先创建、再修改、后添加DOM元素
- jQuery修改DOM结构
- jQuery 如何先创建、再修改、后添加DOM元素
- jQuery 如何先创建、再修改、后添加DOM元素
- 使用jquery动态修改dom元素属性在IE下的问题
- Jquery获取和修改dom元素的属性值
- jQuery的change方法什么时候触发? 你绝对意想不到,即使你通过jQuery修改了input标签的value值(即修改内存中的DOM树中的input),也不会触发change事件,不会,不会
- DOM和JQUERY 对HTML标记修改的冲突之 swfobject
- jQuery零基础入门——(六)修改DOM结构
- 使用jquery当页面打开时,将修改样式的点击事件绑定到Dom
- DOM或Jquery修改HTML标题内容遇到的问题
- jQuery修改DOM结构_动力节点Java学院整理
- CSS selector (jquery的源码分析,修改)
- Jquery从入门到精通:二、选择器 1、准备篇 1)基础的基础:DOM模型
- JavaScript DOM笔记:修改DOM
- Jquery源码分析(修改)
- jquery event domready