首页 > 代码库 > jQuery基础:prop()与attr()的区别

jQuery基础:prop()与attr()的区别

1、结论:

  • 处理HTML本身的属性,使用prop()
  • 处理HTML自定义属性,使用attr()

2、对待属性值为true 或者false类的元素:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>    <input type="checkbox" id="text" checked="true" /></body><script src="http://www.mamicode.com/libs/jquery-1.8.3.min.js"></script><script type="text/javascript">    $(function(){        var btn = $("#text");        var str = btn.attr("checked");        var str2 = btn.prop("checked");        console.log(str2); // true        console.log(str);  //checked    });</script></html>

如上图所示、返回值不一样!

3、获取自定义属性?

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body>    <div id="box" name="bb">div</div></body><script src="http://www.mamicode.com/libs/jquery-1.8.3.min.js"></script><script type="text/javascript">    $(function(){        var btn = $("#box");        var str1 = btn.attr("name");        var str2 = btn.prop("name");        console.log(str1); //bb        console.log(str2); //undefined        // 使用attr可以获取自定义属性        // 使用prop无法获取自定义属性    });</script></html>

 

jQuery基础:prop()与attr()的区别