mmyy-blog

jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作

  • html属性操作:是对html文档中的属性进行读取,设置和移除操作。比如attr()、removeAttr()
  • DOM属性操作:对DOM元素的属性进行读取,设置和移除操作。比如prop()、removeProp()
  • 类样式操作:是指对DOM属性className进行添加,移除操作。比如addClass()、removeClass()、toggleClass()
  • 值操作:是对DOM属性value进行读取和设置操作。比如html()、text()、val()

attr() 

设置属性值或者 返回被选元素的属性值

获取:
$(\'div\').attr(\'id\')
设置
$(\'div\').attr(\'class\',\'box\')
设置多个值,键值对存储
$(\'div\').attr({name:\'hahaha\',class:\'happy\'})

removeAttr()

移除属性

//删除单个属性
$(\'#box\').removeAttr(\'name\');
$(\'#box\').removeAttr(\'class\');
 
//删除多个属性
$(\'#box\').removeAttr(\'name class\');

prop()

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

当该方法用于返回属性值时,则返回第一个匹配元素的值。

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

返回属性的值
$(selector).prop(property)

设置属性和值
$(selector).prop(property,value)

设置多个属性和值
$(selector).prop({property:value, property:value,...})

attr和prop的运用场景

在使用单双选框的时候
//使用attr获取checked的值
           console.log($(\'input\').eq(0).attr(\'checked\'));
-----》返回 checked
 //使用prop获取checked的值
            console.log($(\'input\').eq(0).prop(\'checked\'));
-----》返回true

可以根据不同结果去运用

addClass(添加多个类名)

removeClass从所有匹配的元素中删除全部或者指定的类。

$(\'div\').addClass("box");//追加一个类名到原有的类名

$(\'div\').addClass("box box2");//追加多个类名

$(\'div\').removeClass(\'box\');移除指定的类(一个或多个)

$(\'div\').removeClass();   移除全部的类

toggleClass如果存在(不存在)就删除(添加)一个类。

$(this).toggleClass(\'active\')

html()

设置值:设置该元素的所有内容 会替换掉 标签中原来的内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        /*.box{*/
            /*color: red;*/
        /*}*/
    </style>
</head>
<body>
<div class="box">
    1111
</div>
<div class=".box1">123</div>
<script type="text/javascript" src="jquery-3.3.1.js"></script>
<script type="text/javascript">
    $(function(){
        //设置值
        var name = \'张韶涵\';
        // 模板字符串 tab键上面的反引号 插入变量使用${变量名}
        $(\'.box\').html(`<p style="color: red;">${name}</p>`);
        //使用加号比较麻烦
        // $(\'.box\').html(\'<p style="color: red;">\'+name+\'</p>\');
        //获取值
        console.log($(\'.box\').html());
    })
</script>

</body>
</html>
View Code

text

text() 获取匹配元素包含的文本内容,一般配合trim使用

console.log($(\'.box\').text().trim());  //去除左右空格

val

val()用于表单控件中获取值,比如input textarea select等等

$(\'input\').val(\'设置了表单控件中的值\');

jquery的文档操作

1插入

父元素.append(子元素)

$(\'ul\').append(\'<li class="item1">苏东坡</li>\');

如果追加的是jquery对象那么这些元素将从原位置上消失。简言之,就是一个移动操作

<body>
    <ul></ul>
    <ol>
        <li class="li1">张碧晨</li>
        <li></li>
    </ol>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
    $(function(){
        //将.li1元素移动到ul里面
        $(\'ul\').append($(\'.li1\'));
    })
</script>
</body>
View Code

子元素.appendTo(父元素)

父元素.prepend(子元素);前置添加, 添加到父元素的第一个位置

$(\'ul\').prepend(\'<li>我是第一个</li>\')

子元素.prependTo(父元素);前置添加, 添加到父元素的第一个位置

$(\'<li>我是第一个</li>\').prependTo(‘ul’)

父元素.before(子元素);

子元素.inserBefore(父元素);在匹配的元素之前插入内容 
 

2修改

replaceWith():替换

replaceAll()  :替换所有

$(\'<p>哈哈哈</p>\').replaceAll(\'h2\');

3删除

remove() 删除节点后,事件也会删除(简言之,删除了整个标签)

detach()  删除节点后,事件会保留

$(\'ul\').remove();

$(\'button\').detach();
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<button>操作</button>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
    $(function(){
        $(\'button\').click(function () {
            var btn = $(\'button\').eq(0).detach();   //删除节点后,事件会保留
            $(\'body\').append(btn);  //将删除的标签添加到body中
            //克隆匹配的DOM元素
            $(this).clone(true).insertAfter(this); //true表示克隆自己,副本具有与真身一样的事件处理能力
        })
    })
</script>
</body>
</html>
View Code

empty() 清空选中元素中的所有后代节点

//清空掉ul中的子元素,保留ul
$(\'ul\').empty();

 

 
 
 

 

分类:

技术点:

相关文章:

  • 2021-10-15
  • 2021-07-02
  • 2022-12-23
  • 2021-07-27
  • 2022-02-19
  • 2021-07-27
  • 2021-04-21
猜你喜欢
  • 2021-08-07
  • 2021-11-27
  • 2021-10-15
  • 2022-12-23
  • 2021-11-13
  • 2021-06-24
  • 2022-12-23
相关资源
相似解决方案