使用jQuery的data方法来为页面中的某个元素存储数据,(获取焦点,清除默认值)

使用data方法可以避免在DOM中存储数据,有些前端开发er喜欢使用HTML的属性来存储数据;

使用”alt”属性来作为参数名存储数据其实对于HTML来说是不符合语义的。

我们可以使用jQuery的data方法来为页面中的某个元素存储数据:

html部分:

1 <form id="testform">
2     <input type="text" class="clear" value="Always cleared" />
3     <input type="text" class="clear once" value="Cleared only once" />
4     <input type="text" value="Normal text" />
5 </form>

js部分:

 1 $(function() {
 2      //取出有clear类的input域
 3      //(注: "clear once" 是两个class clear 和 once)
 4      $(‘#testform input.clear‘).each(function(){
 5          //使用data方法存储数据
 6          $(this).data( "txt", $.trim($(this).val()) );  //这里的this是指下面focus事件的this元素
 7      }).focus(function(){
 8          // 获得焦点时判断域内的值是否和默认值相同,如果相同则清空
 9          if ( $.trim($(this).val()) === $(this).data("txt") ) {
10          $(this).val("");
11      }
12      }).blur(function(){
13          // 为有class clear的域添加blur时间来恢复默认值
14          // 但如果class是once则忽略
15          if ( $.trim($(this).val()) === "" && !$(this).hasClass("once") ) {
16          //Restore saved data
17          $(this).val( $(this).data("txt") );
18        }
19     });
20 });

注意:

1.js部分,第4行代码,我们使用each遍历所有选择器元素(有时不仅只有一个元素需要此效果)

2.js部分,第6行代码,把去除前后空格的val值($.trim方法)存入data(‘tet‘)中。这里的this代表each遍历的所有元素中的this

时间: 2024-10-10 21:50:55

使用jQuery的data方法来为页面中的某个元素存储数据,(获取焦点,清除默认值)的相关文章

获取页面中任意一个元素距离body的偏移量

//offSet:等同于jQuery中的offSet方法,获取页面中任意一个元素距离body的偏移量 function offSet(curEle) {     var totalLeft = null;     var totalTop = null;     var par = curEle.offsetParent;     //首先把自己本身的相加     totalLeft += curEle.offsetLeft;     totalTop += curEle.offsetTop;

html5的自定义data-*属性和jquery的data()方法的使用示例

人们总喜欢往HTML标签上添加自定义属性来存储和操作数据. 但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用. 这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情. 你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布

HTML 5 的自定义 data-* 属性和jquery的data()方法的使用

人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用.这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情. 你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布局和

html5的自定义data-*属性与jquery的data()方法的使用

人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用.这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情. 你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布局和

表单提交时如何将错误信息传递到页面中,并且保存原来提交数据

曾经何时,你还有我或许都在困惑,如何方便的将验证不通过的表单信息再返回到前台页面,例如我注册一个账号,辛辛苦苦填写了N多项,一个格式验证没有通过,一切都需要充填,虽然Ajax可以解决这个问题,但是我们总不能把所有表单提交都弄成ajax,更何况有若干人就是没事把javascript给禁止了.哎哎,好了解决方案来了,下面以用户登录为例,说说我的解决方案. 服务器端用nodejs实现: login.html 简单的提交表单 <form action="" id="loginF

阿里校招:前端线上笔试题--页面中的一个元素(10px*10px)围绕坐标(200, 300) 做圆周运动

题目: 请让页面中的一个元素(10px*10px)围绕坐标(200, 300) 做圆周运动: <html> <head> <style type="text/css"> .item{ width:20px; height:20px; border-radius:10px; background: blue; position: absolute; }/*border-radius圆角半径*/ #point{ left:95px; top:295px;

JQuery iframe页面通过parent方法操作父页面中的元素与方法(实例讲解)

1)在iframe中查找父页面元素的方法: $('#id', window.parent.document) 2)在iframe中调用父页面中定义的方法和变量: parent.method parent.value 3)实例 1.父页面 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="If

jquery的ajax方法,在返回中,find方法不起作用

var loadProjectList = function () { $.ajax({ cache: false, method: "POST", url: "/Mobile/ProjectList", //url: "http://192.168.1.102:8084/a.html", data: seacher, // dataType: "html", success: function (res) { //var x

使用Linq求和方法Sum计算集合中多个元素和时应该注意的性能问题

提出问题 本文使用下面的实例来说明问题,以下是实例的完整代码. //************************************************************ // // Sum应用示例代码 // // Author:三五月儿 // // Date:2014/09/10 // // http://blog.csdn.net/yl2isoft // //**********************************************************