`

jQuery入门教程-15 Days of jQuery(Day 5)--懒人用Jquery生成的HTML

阅读更多
转载自网络


这个让我们轻松的纪念日已经到来–我恨我在计算机前已经花了48个小时,我希望能够有另外一个jQuery来结束我的噩梦,并且让我上网更快。

当我一边“在用Jquery方法编写”和一边“进行复杂的文件上传”,我已经筋疲力尽。然而这两种操作的代码是一种较浅的,它只不过是你才刚刚开始解决的一些简单问题。

所以下来我开始介绍:

尽管我在我的网站用所有的CSS样式表去进行表格设计(也许这要花费两年半的时间或者更多),我已经用了很多我能找到的在这方面的信息。回到2004年5月(古代史)A list a part有一篇《关于创建阴影的伟大教程(洋葱皮投影)》可以应用到任何图片,无论尺寸多大.

那片文章的应经不能再评论了,但还是有些人希望能够再出篇教程.

问题

一些css工程师用一些”不相干”的标记,就是为了使背景图片能够应用到每一个元素上.例如:

这里是A list a part用到的代码:

<div class="wrap1">
<div class="wrap2">
<div class="wrap3">
<img src="object.gif" alt="The object casting a shadow" />
</div>
</div>
</div>


所有这些divs充当一个给图片添加投影效果的”钩子”.这不见得好,我们可以把源代码精简成这样:

<img src="object.gif" class="dropshadow" alt="The object casting a shadow" />

按着这个思路…

目标

在这里,我要想你展示如何用jQuery轻而易举的将多于的标记从你的源代码中剔除.运用这个方法,让你的代码更加干净(更重要的是)将使以后变换布局容易的多.



这里,看看jQuery是如何击退这个问题的.

$(document).ready(function(){
$("img.dropshadow")
.wrap("<div class='wrap1'><div class='wrap2'>" +
"<div class='wrap3'></div></div></div>");
});

图片就可以保持这样了:
<img src="object.gif" class="dropshadow" alt="The object casting a shadow" />

仔细看看

$(document).ready() 是jQuery版的window.onload()

$(“img.dropshadow”) 告诉jQuery找到带有class=“dropshadow”的图片,如果你想用一个id你可以这样: $(“img#dropshadow”)wrap() (wrap() tells jQuery to use the DOM (Document Object Method Model) to wrap the images with the class=”dropshadow” in the html inside the parenthesis. )

最后的结果

傻乎乎的图片,但是和original Onion Skinned Drop Shadows用的是一样的.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Onion Skin DropShadwo with jQuery</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
<style>
.wrap0, .wrap1, .wrap2, .wrap3 {
  display:inline-table;
  /* \*/display:block;/**/
  }
.wrap0 {
  float:left;
  background:url(shadow.gif) right bottom no-repeat;
  }
.wrap1 {
  background:url(shadow180.gif) no-repeat;
  }
.wrap2 {
  background:url(corner_bl.gif) -18px 100% no-repeat;
  }
.wrap3 {
padding:10px 14px 14px 10px;
  background:url(corner_tr.gif) 100% -18px no-repeat;
  }
  body { background: #fff;}
</style>
<script src="jquery.js" type="text/javascript"></script>
 
<script>
$(document).ready(function(){
$("img.dropshadow")
.wrap("<div class='wrap0'><div class='wrap1'><div class='wrap2'>" +
"<div class='wrap3'></div></div></div></div>");
});
</script>
</head>
 
<body>
<h1>Onion Skinned - With jQuery</h1>
<p>First, the old-school, multiple divs hard coded into the html as seen on the <a href="http:/
/www.ploughdeep.com/onionskin/360.html">orignial article</a>:</p>
<div class="wrap0">
<div class="wrap1">
  <div class="wrap2">
   <div class="wrap3">
    <img src="ball.jpg" alt="The object casting a shadow" />
   </div>
  </div>
</div>
</div>
 
<p style="clear:both;">And now, the jQuery method, which uses javascript to wrap the image 
at runtime:</p>
     <img src="ball.jpg" class = "dropshadow" alt="The object casting a shadow" />
     <p>View the source of this page and you'll see the huge difference in markup!</p>
</body>
</html>

jQuery和其它解决方法的比较

jQuery的网站上有一个到Ajaxian网站的链接,那里有用另外一个javascrip库创建的Onion Skin Drop Shadow ,我相信他的代码复杂程度和代码量现在看来自不待言.我宁愿使用jQuery.(怎么?你猜到了..)

平心而论,没有一个库是对于每一个工作或每一段代码都是合适的.本教程不是为了证明jQuery是一切javascrip类库中的老大. 试试Prototype, Scriptaculous, YUI, Rico, Behaviour, Moo.fx 和 the dozens 或者其它的.如果你找到了一个你用起来比较顺手的,那就去用它吧.

jQuery对于我来说只是一个工具.我只是希望这个教程能够提供给你更多使用它的方法.

有关jQuery的工具

jQuery用难以置信的简单来操作DOM. 你应该花些时间看看jQuery能用来做什么,用下append(), prepend(), before(), after(), html(), and remove().

来自jQuery Docs

wrap(String html)

把所有匹配的元素用其他元素的结构化标记包装起来。这种包装对于在文档中插入额外的结构化标记最有用,而且它不会破坏原始文档的语义品质。

这个函数的原理是检查提供的第一个元素(它是由所提供的HTML标记代码动态生成的),并在它的代码结构中找到最上层的祖先元素--这个祖先元素就是包装元素。

当HTML标记代码中的元素包含文本时无法使用这个函数。因此,如果要添加文本应该在包装完成之后再行添加。

示例:
$("p").wrap("<div class='wrap'></div>");

HTML
<p>Test Paragraph.</p>

结果
<div class='wrap'><p>Test Paragraph.</p></div>

分享到:
评论

相关推荐

    jquery-ui-1.8.16

    jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-ui-1.8.16jquery-...

    jquery插件jquery-ui-1.8.2.custom.min.js

    《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...

    jquery-migrate-1.2.1.js文件

    5. **移除jQuery Migrate**:在所有兼容性问题解决后,可以安全地从项目中移除`jquery-migrate-1.2.1.js`,以避免额外的代码负担。 总之,`jquery-migrate-1.2.1.js` 文件是jQuery生态系统中一个非常实用的工具,它...

    jquery插件jquery-ui-1.8.18.custom.min.js及css文件

    - **主题定制**:可以使用在线工具(如ThemeRoller)创建自定义主题,然后将生成的CSS文件替换原有主题,以符合项目的视觉需求。 - **事件处理**:通过JavaScript代码绑定事件监听器,实现对jQuery UI组件的控制和...

    jquery-ui-1.8.16.custom.min.js/jquery-ui-1.8.16.custom.css

    **jQuery UI** 是一个强大的JavaScript库,用于构建用户界面,它基于流行的jQuery库。这个压缩包包含两个关键文件:`jquery-ui-1.8.16.custom.min.js` 和 `jquery-ui-1.8.16.custom.css`,这些都是jQuery UI的特定...

    jquery.datepicker-zh-CN.js

    jquery datepicker 的中文包 调用方法 &lt;script src="./public/js/jquery-ui-1.10.3.min.js"&gt; &lt;script src="./public/js/jquery.datepicker-zh-CN.js"&gt;&lt;/script&gt; &lt;link href="./public/css/jqueryui/jquery-ui-...

    jquery.editable-select

    5. **样式定制**:`jquery.editable-select.css` 文件包含了插件的默认样式,开发者可以根据自己的需求进行调整,以适应不同的网页设计。如果需要更精细的控制,可以使用 CSS 类名和属性进行覆写。 6. **压缩和非...

    jQuery版本迁移辅助插件jquery-migrate-1.2.1.min.js

    jQuery版本迁移辅助插件,如果您使用的低版本jQuery改为高版本后出现错误,可以试试这个插件。用来检测和恢复在jQuery1.9版本中已删除或已过时的API。jquery-migrate-1.2.1.js,jquery-migrate-1.2.1.min.js

    jquery-ui-datepicker中文版

    jquery-ui-日期框扩展成时间框 jquery-ui时间框 基于别人的代码进行修改 jquery-ui-1.8.16.custom.css文件末尾加入以下代码 .ui-timepicker-div .ui-widget-header{ margin-bottom: 8px; } .ui-timepicker-div dl{ ...

    插件jquery-ui-timepicker-addon.js

    jquery插件jquery-ui-timepicker-addon.j

    jquery-easyui-EDT-1.5.2-build1

    jquery-easyui-EDT-1.5.2-build1 jquery-easyui-EDT-1.5.2-build1

    jquery-migrate-3.0.1.js jar包

    《jQuery Migrate插件详解与应用》 在Web开发领域,jQuery是一款广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。然而,随着技术的发展,jQuery也在不断迭代更新,新版本可能会...

    jquery-1.6.4-vsdoc.js

    最新版jquery-1.6.4-vsdoc.js jQuery的VS智能提示插。压缩包内包含jquery-1.6.4.js jquery-1.6.4.min.js jquery-1.6.4-vsdoc.js 。 【推荐用法】 1、将jquery-1.6.4-vsdoc.js与jquery-1.6.4.js放在同一目录,然后...

    jquery-migrate-3.0.0.zip

    《jQuery Migrate 3.0.0:解决版本迁移中的兼容问题》 jQuery Migrate 是一个专门为了解决jQuery不同版本间兼容性问题而设计的插件。在标题中提到的"jquery-migrate-3.0.0.zip",是这个插件的一个特定版本,即3.0.0...

    jquery-ui-1.11.2日期控件datepicker

    最新jquery-ui-1.11.2日期控件,官网下载内涵图片和自己添加的中文辅助jquery-ui-timepicker-zh-CN.js,经过本人测试绝对可以用,不知道怎么用的百度上找个例子即可,需要导入的包 ${ctx}/plugins/jquery-ui-1.11.2/...

    jquery-ui-1.9.2.custom.min.js

    《jQuery UI 1.9.2自定义最小化版本详解》 jQuery UI 是一个基于 jQuery 的强大用户界面库,它提供了丰富的交互效果、可自定义的主题以及多种可重用的UI组件。在我们讨论的文件 "jquery-ui-1.9.2.custom.min.js" 中...

    jquery-migrate-1.2.1.min.js

    jquery-migrate-1.2.1.min.js 在网上下载一些 js 插件使用的时候,经常出现这种情况。但是更换低版本 jquery,比如 ...所以 jquery-migrate-1.1.0.js 就是一个过渡插件 让你在原来代码上升级jquery 不用修改代码用的。

    jQuery摄像头插件jquery-webcam-plugin

    要使用`jQuery webcam plugin`,首先需要在项目中引入jQuery库以及插件的JavaScript和CSS文件。接着,需要在HTML中创建一个用于显示摄像头预览的元素,例如一个`div`,并为其添加特定的ID。然后,通过以下JavaScript...

    Jquery智能提示完整全部版本vsdoc.js

    jquery-1.3.2-vsdoc.js jquery-1.8.3.min.js jquery-1.3.2.min.js jquery-1.4.1-vsdoc.js jquery-1.4.1.min.js jquery-1.4.2-vsdoc.js jquery-1.4.2.min.js jquery-1.4.3-vsdoc.js jquery-1.4.3.min.js ...

    jquery-migrate-3.0.0.min.js+js+jquery+兼容

    jQuery-Migrate 是一个过渡插件让你在原来代码上升级 jQuery 不用修改代码。cdn:https://code.jquery.com/jquery-migrate-3.0.0.min.js

Global site tag (gtag.js) - Google Analytics