《jQuery Cookbook中文版》——1.10 创建、操作和插入DOM元素

1.10 创建、操作和插入DOM元素

1.10.1 问题
你打算创建一个或者多个新的DOM元素,立刻选中这些元素加以操作,然后把它们注入到DOM中。

1.10.2 解决方案
你可能还不清楚,jQuery函数是多功能的,根据你发送的不同参数结构,一个函数能以不同的方式运行。如果以原始HTML文本字符串为参数调用函数,它将立刻创建这些元素。例如,下列语句将创建一个包装在< p>元素中的< a>元素,在< p>和< a>元素中还封装了一个文本节点:

jQuery('<p><a>jQuery</a></p>');
创建了元素之后,还可以使用jQuery方法对它进行进一步的操作,就像一开始就从现有的HTML文档中选择了< p>元素似的。例如,可以用.find()方法选择< a>元素,并设置它的一个属性。在下面的代码中,将其href属性设置为http://www.jquery.com

jQuery('<p><a>jQuery</a></p>').find('a').attr('href','http://www.jquery.com');
这很棒,对吗?目前为止,所做的只不过是在运行中创建元素并在代码中进行操纵,实际上还可以做得更好。可以说,实际上还没有真正改变当前加载的DOM。想做到这一点,就必须使用jQuery提供的操纵方法。下面是在HTML文档上下文中的代码。在这段代码中将创建元素、在这些元素上进行操作,然后用操纵方法appendTo()将它们插入DOM中:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<script type="text/JavaScript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/JavaScript">
jQuery('<p><a>jQuery</a></p>').find('a').attr('href','http://www.jquery.com')
 .end().appendTo('body');
</script>
</body>
</html>

请注意这里是如何使用end()方法撤消find()方法的,这样当调用appendTo()方法时,它将在DOM中附加包含在初始包装器集中的元素。

1.10.3 讨论
在本秘诀中,向jQuery函数传递原始HTML字符串,这一参数被方法用来在运行中创建DOM元素。 还可以简单地向jQuery函数传递一个由DOM方法createElement()创建的DOM对象:

jQuery(document.createElement('p')).appendTo('body'); //在页面中添加一个空白的p元素
当然,如果用一个包含多个元素的HTML字符串就能正常工作,这么做可能就显得麻烦了,如何选择取决于具体的用法。

时间: 2024-08-03 02:36:54

《jQuery Cookbook中文版》——1.10 创建、操作和插入DOM元素的相关文章

《jQuery Cookbook中文版》——导读

前言 jQuery程序库给前端开发带来了一场风暴.它极其简单的语法使曾经很复杂的任务变得轻松愉快.许多开发人员很快就为它的优雅和清晰而着迷.如果你已经开始使用这个程序库,你就已经将丰富而具有交互性的体验加入到你的项目中. jQuery的入门非常容易,但是和许多用于开发网站的工具一样,完全体会到它的广度和深度需要花费几个月甚至几年的时间.这个程序库充满了你从未想象过的特性.一旦你了解了这些特性,这些特性就能够戏剧性地改变你解决问题的方法. 本书旨在向亲爱的读者展示业界领先的前端开发人员在日常项目中

《jQuery Cookbook中文版》——1.9 根据当前上下文遍历DOM获得新的DOM元素集

1.9 根据当前上下文遍历DOM获得新的DOM元素集 1.9.1 问题你已经选择了一组DOM元素,根据选择集在DOM结构树中的位置,你打算遍历DOM获得一个新的元素集以供操作. 1.9.2 解决方案jQuery提供一组方法,可以根据当前选择的DOM元素的上下文遍历DOM. 例如,查看如下的HTML片段: <div> <ul> <li><a href="#">link</a></li> <li><a

javascript-【急】iframe父操作子的dom元素失效?

问题描述 [急]iframe父操作子的dom元素失效? 父级: <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="Generator" content="EditPlus?"> <meta na

《jQuery Cookbook中文版》——1.5 过滤DOM元素包装器集

1.5 过滤DOM元素包装器集 1.5.1 问题 在jQuery包装器集中有一组选中的DOM元素,但是打算从集合中删除不匹配新指定表达式的元素,以创建一个新的操作元素集合. 1.5.2 解决方案 jQuery过滤器方法用于DOM元素的jQuery包装器集,可以排除不符合指定表达式的元素.简言之,可以用filter()方法过滤当前元素集,这是过滤器方法与jQuery查找方法的重要区别,查找方法通过寻找(使用新的选择器变量)新元素(包括当前包装器集的子元素)来缩小DOM元素的包装器集. 为了理解过滤

《jQuery Cookbook中文版》——1.6 查找当前选择包装器集中的后代元素

1.6 查找当前选择包装器集中的后代元素 1.6.1 问题你选择了一组(或者一个)DOM元素,希望在当前选中元素的上下文中找到后代(子)元素. 1.6.2 解决方案使用.find()方法,根据当前集合及其后代的上下文创建一个新的元素包装器集.例如,假设你有一个包含多个段落的网页,这些段落中封装的是需要强调(以斜体显示)的单词.如果你只想选择 元素中包含的元素,可以使用如下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona

《jQuery Cookbook中文版》——第1章 jQuery基础1.0 导言

第1章 jQuery基础 1.0 导言 既然你已经选择了一本有关jQuery的"食谱",本书作者基本就可以假定你对jQuery的定义和功能有了大致的认识.坦白说,"食谱"通常是为寻求加强已有知识基础的读者所编写的.因此,本书使用了问题-解决方案-讨论的编排方式,快速地介绍常见问题的解决方案.但是,如果你是一位jQuery新手,不要把本书抛诸脑后,认为第1章是老生常谈,这一章就是专为新手所写的. 如果你需要复习,或者只有很少或者完全没有jQuery的知识,第1章将帮助

《jQuery Cookbook中文版》——1.11 删除DOM元素

1.11 删除DOM元素 1.11.1 问题 你想从DOM中删除元素. 1.11.2 解决方案 remove()方法可以用于从DOM中删除选中的元素集及其子元素.请看如下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <h

《jQuery Cookbook中文版》——1.4 在指定上下文中选择DOM元素

1.4 在指定上下文中选择DOM元素 1.4.1 问题 你需要引用在另一个DOM元素或者文档上下文中的单个DOM元素或者一组DOM元素,以便用jQuery方法操作这些元素. 1.4.2 解决方案 当传递CSS表达式时,jQuery函数还有第二个参数,这个参数告诉jQuery函数应该在那个上下文中根据表达式搜索DOM元素.在这种情况下,第二个参数可以是一个DOM引用.jQuery包装器或者文档.在下面的代码中有12个< input>元素.注意我是如何根据< form>元素确定具体的上

《jQuery Cookbook中文版》——1.8 将前一个选择集包含到当前选择集

1.8 将前一个选择集包含到当前选择集 1.8.1 问题你刚刚对一组元素进行操纵,获得新的元素集.但是,你想同时操作前一个元素集和当前元素集. 1.8.2 解决方案可以用andSelf()方法合并前一个DOM元素选择集和当前选择集.例如,在下面的代码中,首先选择页面上的所有< div>元素.接下来,操纵这组元素,寻找< div>元素中的所有< p>元素.现在,为了同时操作< div>和< div>中找到的< p>元素,可以用andSe