jquery属性操作

操作元素(属性)

属性操作

'''
--------------------------属性
$("").attr();
$("").removeAttr();
$("").prop();
$("").removeProp();
--------------------------CSS类
$("").addClass(class|fn)
$("").removeClass([class|fn])
--------------------------HTML代码/文本/值
$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr])
---------------------------
$("").css("color","red")
'''

注意:

<input id="chk1" type="checkbox" />是否可见
<input id="chk2" type="checkbox" checked="checked" />是否可见



<script>

//对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
//对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
//像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此
//需要使用prop方法去操作才能获得正确的结果。


//    $("#chk1").attr("checked")
//    undefined
//    $("#chk1").prop("checked")
//    false

//  ---------手动选中的时候attr()获得到没有意义的undefined-----------
//    $("#chk1").attr("checked")
//    undefined
//    $("#chk1").prop("checked")
//    true

    console.log($("#chk1").prop("checked"));//false
    console.log($("#chk2").prop("checked"));//true
    console.log($("#chk1").attr("checked"));//undefined
    console.log($("#chk2").attr("checked"));//checked
</script>

attr和prop
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .hide{
            display: none;
        }
    </style>
</head>
<body>

    <div class="div1"></div>
    <script src="jquery-3.3.1.js"></script>
    <script>
        console.log($('.div1').hasClass('div1')) // true;$('P').hasClass('p1')判断P标签是否有class属性值为p1,返回布尔值
    </script>


    <!--***********************属性操作***********************-->
    <div class="div2" con="c1"></div>
    <input type="checkbox">是否可见
    <input type="checkbox" checked="checked">是否可见
    <script>
        console.log($('.div2').attr('con')); // c1
        $('.div2').attr('con','c2'); // 可以发现con属性值已经更改为c2

        console.log($(':checkbox:first').attr('checked')); // undefined
        console.log($(':checkbox:last').attr('checked')); // checked

        console.log($(':checkbox:first').prop('checked')); // false
        console.log($(':checkbox:last').prop('checked')); // true
        console.log($('.div2').prop('con')); // undefined
        $('.div2').prop('con','c3'); // 上面已经显示了找不到,所以无法更改
        // 结论:prop与attr用法相似,但是对于标签固有属性使用prop好一些,对于标签自定义属性使用attr好一些
    </script>

    <div class="div3 hide">hello div</div>
    <script>
        $('.div3').removeClass('hide'); // 移除属性值
        $('.div3').addClass('hide'); // 添加属性值
    </script>

    <div id="id1">
        aaaaaa
        <p>pppppp</p>
    </div>
    <script>
        console.log($('#id1').html()); // aaaaaa <p>pppppp</p>
        console.log($('#id1').text()); // aaaaaa pppppp
        $('#id1').html('<h1>hello</h1>'); // 把h1标签渲染了
        $('#id1').text('<h1>hello</h1>'); // 直接把h1标签当作文本内容
    </script>

    <input type="text" value="123">
    <div value="456"></div>
    <script>
        console.log($(':text').val()); // 123
        console.log($(':text').next().val()); // 什么都没打印
        $(':text').val('789');
        // 结论:val只能对有固有属性value的标签进行取值,如input/select/option
    </script>

    <div class="div4">hi</div>
    <script>
        $('.div4').css('color','red');
        // $('.div4').css({'color':'yellow','background-color':'black'}); // 这种写法也可以
    </script>
</body>
</html>
while True: print('studying...')
原文地址:https://www.cnblogs.com/xuewei95/p/15041835.html