jquery

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > jquery > jquery元素设置属性

jquery给元素设置属性的简单方法

作者:cyndi_超努力

jquery是一个js插件库,现在很多前端开发人员都是使用它来操作dom的,对于dom操作,jquery提供了很多方法,这篇文章主要给大家介绍了关于jquery给元素设置属性的简单方法,需要的朋友可以参考下

设置方法:1、使用attr()方法,语法“$(selector).attr(属性名,值)”或“$(selector).attr({属性名:值;})”;2、使用prop()方法,语法“$(selector).prop(属性名,值)”。

1、使用attr()方法 

attr() 方法设置或返回被选元素的属性值。根据该方法不同的参数,其工作方式也有所差异。

语法:

//单个属性
$(selector).attr(属性名,值)
//多个属性
$(selector).attr({属性名:值;属性值:值...})

2、使用prop()方法

prop() 方法设置或返回被选元素的属性和值。

当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对。

语法:

//单个属性
$(selector).prop(属性名,值)
//多个属性
$(selector).prop({属性名:值;属性值:值...})

3、attr()和prop()方法的区别

prop() 方法和 attr() 方法相似,都是用来获取或设置元素的 HTML 属性的,不过两者也有着本质上的区别。

jQuery 官方建议:具有 true 和 false 这两种取值的属性,如 checked、selected 和 disabled 等,建议使用 prop() 方法来操作,而其他的属性都建议使用 attr() 方法来操作。

示例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <script src="js/jquery-1.10.2.min.js"></script>
        <script>
            $(function () {
            $('input[type="radio"]').change(function(){
                var bool = $(this).attr("checked");
                if(bool){
                    $("p").text("你选择的是:" + $(this).val());
                }
            })
        })
    </script>
    </head>
    <body>
        <div>
            <label><input type="radio" name="fruit" value="苹果" />苹果</label>
            <label><input type="radio" name="fruit" value="香蕉" />香蕉</label>
            <label><input type="radio" name="fruit" value="西瓜" />西瓜</label>
        </div>
        <p></p>
    </body>
</html>

 预览效果如图 1 所示。

分析: 

$().change(function(){
    ……
})

在这个例子中,我们其实是想通过$(this).attr("checked")判断单选框是否被选中,如果被选中,就获取该单选框的 value 值。可是运行代码后发现:完全没有效果!这是为什么呢?

实际上,对于表单元素的 checked、selected、disabled 这些属性,我们使用 attr() 方法是没法获取的,而必须使用 prop() 方法来获取。因此,我们把 attr() 方法替换成 prop() 方法就有效果了。

其实,prop()方法的出现就是为了弥补 attr() 方法在表单属性操作中的不足。记住一句话:如果某个属性没法使用 attr() 方法来获取或设置,改换 prop() 方法就可以实现。

补充:jQuery给标签添加自定义属性

jQuery给标签添加自定义属性

下面代码包含了添加和获取自定义属性。

添加的属性值有数字,类数组,对象,详细用法见备注。

<script type="text/javascript">
    // 设置属性
    $('#box').css('width', '200px')
    $('#a1').attr('href',"http://www.baidu.com")
    // 设置多个属性
    // 注意:属性名不用加引号
    $('#a1').attr({ href: "http://t.tt", target: "_blank" })


    // *********** 添加和获取自定义属性 ************
    // ==========1.设置一个自定义值==========
    $('#a1').attr('myIndex',2)
    console.log($('#a1').attr('myIndex'))

    // ==========2.设置多个自定义值==========
    // 注意:属性名要加引号,不能使用阿拉伯数字作为属性名
    fruitsList = {'a':'苹果', 'b':'香蕉', 'c':'西瓜'}

    // !!!!!!!!!!! 不正确的设置 !!!!!!!!!!!
    $('#a1').attr('fruit',fruitsList)
    console.log($('#a1').attr('fruit'))   // 打印:[object Object],没有实际用处

    // 正确设置和获取属性
    $('#a1').attr(fruitsList)
    console.log($('#a1').attr('a'))         // 打印: 苹果
    console.log($('#a1').attr('b'))         // 打印: 香蕉
    console.log($('#a1').attr('c'))         // 打印: 西瓜

    // ==========3.设置自定义值为对象===========
    // 创建对象
    function Person(name, age){
        this.name = name
        this.age = age
    }
    person1 = new Person('Lili', 20)

    // !!!!!!!!!!! 不正确的设置 !!!!!!!!!!!
    $('#a1').attr('myattar', person1)       
    console.log($('#a1').attr('myattar'))   // 打印:[object Object],没有实际用处

    // 正确设置和获取属性
    $('#a1').attr(person1)
    console.log($('#a1').attr('name'))
    console.log($('#a1').attr('age'))
</script>

总结 

到此这篇关于jquery给元素设置属性的文章就介绍到这了,更多相关jquery元素设置属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文