jQuery API之属性篇(Attribute)

属性篇:

写作本篇文章的意义:jQuery的教程千千万,却没有英文版的API讲的系统、到位,一些话用中文翻译过来味道就变了,所以我将英文版的API的一些常用的方法单独提出来放在这里,并用自己的实践+理解陈述,在大家懒得查看官网的时候可以做为参考。

属性的作用的原文描述:These methods get and set DOM attributes of elements.即用来获取/设置DOM元素的属性的值;我们经常需要在页面中从元素中取值和设值,这些方法使用频次“非常高”!所以掌握它是成为牛逼工程师必须的基本功啦!

||| .addClass()

Description: Adds the specified class(es) to each element in the set of matched elements.

添加指定的类到匹配元素集合中的每一个元素。

1、.addClass(className)

类型:String

一个或多个类(用空格隔开)添加到匹配的元素的class属性。

2、.addClass(function)

类型:Function(Integer index , String currentClassName)==>String

一个函数返回一个或多个空格分隔的类名称添加到现有的类名(s)。 接收元素的索引位置的设置和现有的类名(s)作为参数。 在函数内this是指当前元素的集合。

3、examples:

①一次添加多个类:

$("p").addClass("myClass  yourClass");

②切换元素的类从一个到另一个:

$("p").removeClass("myClass noClass").addClass("yourClass");

所有p段落中的myClass和noClass都被移除,yourClass则被加入到所有匹配的p元素中。

③接收一个function函数:

$("ul li").addClass(function( index ){
       return "item-"+index;
})

如果给定无序列表中的两个<li>元素,那么上面的函数的作用是将在第一个<li>中加入item-0类,第二个<li>中加入item-1类。

||| .attr()

Description:Get the value of an attribute for the first element in the set of matched elements or set one or more attributes for every matched element.

获取匹配元素集合的属性的第一个元素的值,或者设置一个或多个属性给匹配的每个元素。

.attr(attributeName);//只获取匹配元素集合的第一个元素的属性值,想要获取多个值可以利用jQuery的.each()或.map()方法

.attr(attributeName,value);//设置值

①获取属性值:

<body>
<input id="check1" checked="checked" type="checkbox" />
<label for="check1" >check me</label>

<script>
$("input").change(function(){
var $input=$("input[id=‘check1‘]");
$("p").html("通过.attr(‘checked‘)获取checked的值:"+$input.attr("checked")+<br>
"通过.prop(‘checked‘)获取checked的属性值:"+$input.prop("checked")+<br>
"通过.is(‘:checked‘)获取checked的属性值:"+$input.is(":checked")+<br>
}
</script>
</body>

结果: Check me

.attr( ‘checked‘ ): checked//取值
.prop( ‘checked‘ ): true//判断
.is( ‘:checked‘ ): true//判断

上面针对checkbox的情况,相对比较特殊,.attr()是取得属性的值,.prop()在checked, selected,  disabled三个DOM元素属性取值时,返回的结果是布尔型,其他情况下都是返回属性值。

示例:

  <style>
  em {
    color: blue;
    font-weight: bold;
  }
  div {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 <p>Once there was a <em title="huge, gigantic">large</em> dinosaur...</p>
 The title of the emphasis is:<div></div>
 <script>
var title = $( "em" ).attr( "title" );
//var title=$("em").prop("title");与.attr()效果一样
$( "div" ).text( title );
</script>

当设置checkbox的选中情况时:

 <body>

   <input type="checkbox" checked="checked">
  <input type="checkbox">
   <input type="checkbox">
  <input type="checkbox" checked="checked">

 <script>
 $( "input[type=‘checkbox‘]" ).attr("checked",false);
$("input[type=‘checkbox‘]").prop("checked",false);//与.attr()效果一样
 </script>

 </body>

  

②设置属性值:

.attr(attributeName,value):这种方法设置属性值非常方便,且看:

<img id="greatPhoto" src="1.jsp" alt="this is a photo" /><script>$("#greatPhoto").attr("alt","come form my world!");</script>

设置多个属性值:

$( "#greatPhoto" ).attr({
  alt: "Beijing Brush Seller",
  title: "photo by Kelly Clark"
});

用函数来设置值:

<scirpt>
$("#greatephoto").attr(function( i , val){//获取第i个id值为greatphoto的变量值val,此处的i即是id的索引值,val为其对应的id值
return val+"change";
})
</script>

设置id的div基于页面中的位置:

<body>

<div>Zero-th <span></span></div>
<div>First <span></span></div>
<div>Second <span></span></div>

<script>
$("div").attr("id".function(arr){//设置id的属性值,arr的值即是id属性的值,此处没有用变量i来对应,因为下面用了.each()来循环设置
return arr+"div-id";
}).each(function(){//循环追加信息
$("span",this).html("id=‘<b>"+this.id+"</b>‘");//this指代当前循环的"span"对象
})
</script>

</body>

||| .hasClass()

Description: Determine whether any of the matched elements are assigned the given class.

用来判断是否有匹配的类。应用相对比较简单,看例即知:

 <div id="mydiv" class="foo bar"></div>
//判断是否含有类
$( "#mydiv" ).hasClass( "foo" )

  

四、.html()

Description: Get the HTML contents of the first element in the set of matched elements.

用来获取匹配的元素集合的第一个元素的文本内容。

<div class="demo-container">
   <div class="demo-box">Demonstration Box</div>
 </div>
 //获取div中的内容
 $( "div.demo-container" ).html();

  

当.html()方法中输入内容时,则会改变对应元素的文本内容。

||| .removeAttr()

Description: Remove an attribute from each element in the set of matched elements.

清除所有匹配的元素集合的元素。

.removeAttr()方法是从javascript中的.removeAttribute()继承过来,但是jQuery的此方法可以在不同版本的浏览器上运行

.removeAttr(attributeName)需要的类型是String类型:

下面这个例子比较经典,略带一点逻辑:

<button>Change title</button>
<input type="text" title="hello there">
<div id="log"></div>

<script>
(function() {
  var inputTitle = $( "input" ).attr( "title" );
  $( "button" ).click(function() {
    var input = $( this ).next();//选择同级元素的下一个元素,也就是下面那个div标签对象

    if ( input.attr( "title" ) == inputTitle ) {//如果div对象的title值与input对象的title值相同就清除div对象的title属性值,不相同的情况下则添加input对象的title属性值给div对象
      input.removeAttr( "title" )
    } else {
      input.attr( "title", inputTitle );
    }

    $( "#log" ).html( "input title is now " + input.attr( "title" ) );
  });
})();
</script>

.removeAttr()与.removeProp()的作用基本相似。

||| .val()  

Description: Get the current value of the first element in the set of matched elements.

获取匹配元素集合的第一个元素的值。

注意事项:The .val() method is primarily used to get the values of form elements such as input, select and textarea. When called on an empty collection, it returns undefined.

通常用于input、select、textarea。

//获取下拉框的foo类中被选中的项的值
$( "select.foo option:selected").val();

// 获取所有foo类的下拉框的值
$( "select.foo" ).val();

// 获取被选中的复选框的值
$( "input:checkbox:checked" ).val();

// 获取被选中的单选按钮的值
$( "input:radio[name=bar]:checked" ).val();

下面的例子实现:单选下拉框显示选项的值,多选下拉框显示选中项的值:

<p></p>

<select id="single">
  <option>Single</option>
  <option>Single2</option>
</select>

<select id="multiple" multiple="multiple">
  <option selected="selected">Multiple</option>
  <option>Multiple2</option>
  <option selected="selected">Multiple3</option>
</select>

<script>
function displayVals(){
var singleVal=$("#single").val();
var multipleVals=$("#multiple").val()|| [];//这样写也可以:var multipleVals=$("#multiple").val();
$("p").html(singleVal+"  "+multipleVals.join(","));
}

displayVals();//调用displayVal()方法

$("select").change(displayVals);//当select对象的选项改变时,调用change方法,调用displayVals()方法,如果不加此行,则在变换的时候,不会调用displayVal()这个方法。
</script>

  

时间: 2024-10-14 08:47:32

jQuery API之属性篇(Attribute)的相关文章

jQuery基础(样式篇,DOM对象,选择器,属性样式)

1. $(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真正的的被加载完毕后才能正确的使用. $(document).ready(function() {   内容  }); 1.jQuery对象与DOM对象   jQuery对象与DOM对象是不一样的 普通处理,通过标准JavaScript处理: var p = document.getElementById

Jquery attr()方法 属性赋值和属性获取

jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式. 1. attr(属性名)       //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2. attr(属性名, 属性值)   //设置属性的值 (为所有匹配的元素设置一个属性值.) 3. attr(属性名,函数值

jQuery(六) jQuery修改class属性和CSS样式

jQuery修改class属性和CSS样式 class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔. 具体使用方法见:http://www.w3school.com.cn/css/css_selector_class.asp 用jQuery进行类名修改既可以用attr()方法修改”class”属性,也可以用

jQuery修改class属性和CSS样式

原文:jQuery修改class属性和CSS样式 jQuery修改class属性和CSS样式 class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个class属性.但是class属性的值可以是多个名称,即可能包含一个词的列表,中间用空格分隔. 具体使用方法见:http://www.w3school.com.cn/css/css_selector_class.asp 用jQuery进行类名修改既可以

从零开始学习jQuery (一) 开天辟地入门篇

原文:从零开始学习jQuery (一) 开天辟地入门篇 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零开始学习jQuer

angular中的jqLite所包含的jquery API

Angular本身包含了一个叫做jqLite的可兼容性库. 使用过的angular.element()方法就返回一个jqLite对象, jqLite是jQuery库的子集,它 允许Angular以跨浏览器兼容的方式维护DOM. jqLite并不试图覆盖jQuery库包含的所有方法,它旨在保持轻量, 并且只覆盖了Angular要用 到的那些方法. 这个库包含以下jQuery方法. addClass() 给元素添加指定的类. after() 在元素的后面插入内容. append() 将内容插入到元素

【C#】属性(Attribute)

如果程序员是猫,你是哪只猫? 这个是我一直都很喜欢的一个技术,不是很麻烦,也不是很难理解,和反射配合起来,只有你想不到没有做不到的用途(夸张了哈). 运用范围 程序集,模块,类型(类,结构,枚举,接口,委托),字段,方法(含构造),方法,参数,方法返回值,属性(property),Attribute [AttributeUsage(AttributeTargets.All)] public class TestAttribute : Attribute { } [TestAttribute]//

jquery api 常见api 元素操作例子

append_prepend.html 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>method_1.html</title> 5 <meta http-equiv="content-type" content="text/html; charset=

Jquery attr()方法 属性赋值和属性获取 - MwSoft

jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式. 1.  attr( 属性名 )        //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2.  attr( 属性名, 属性值 )    //设置属性的值 (为所有匹配的元素设置一个属性值.) 3.  att