jQuery的过滤器、css()方法、class操作、html() 与 text() 与 val()和操作节点

发布于:2023-01-19 ⋅ 阅读:(247) ⋅ 点赞:(0)

一、可见性过滤器的使用

根据元素是否显示来选择

  • :hidden:匹配所有的不可见元素
  • :visible:匹配所有的可见元素

案例效果如下: 

 

<body>
    <div></div>
    <div></div>
    <input type="button" value="隐藏" id="btn1">
    <input type="button" value="显示" id="btn2">
    <script>
        $(function(){
            $('#btn1').click(function(){
                // $('div:visible')中的visible是用来获取到可见的元素
                $('div:visible').hide(1000)//hide隐藏
            })
            $('#btn2').click(function(){
                // $('div:hidden')中的hidden是用来获取到隐藏的元素
                $('div:hidden').show(1000)//show显示
            })
        })
    </script>
</body>

二、css()方法

css() 方法设置或返回被选元素的一个或多个样式属性

1、返回 CSS 属性

如需返回指定的 CSS 属性的值,请使用如下语法:

css("propertyname");

案例:将返回 p 标签的 background-color 值:

$("p").css("background-color");

2、设置 CSS 属性

如需设置指定的 CSS 属性,请使用如下语法:

css("propertyname","value");

案例:将为所有匹配设置 p 标签的 background-color 值: 

3、设置多个 CSS 属性

如需设置多个 CSS 属性,请使用如下语法:

// 第一种方法
css({"propertyname":"value","propertyname":"value",...});
// 第二种方法:使用链式写法实现
css("propertyname","value").css("propertyname","value");

案例:将为所有 p 标签设置 background-color 和 font-size:

// 第一种方式
$("p").css({"background-color":"yellow","font-size":"20px"});
// 第二种方式:使用链式写法实现
$("p").css("background-color","yellow").css("font-size","20px");

三、class操作

除了通过设置 css() 方法,也可以修改 class 名来修改样式效果

1、addClass() 方法

addClass() 方法向被选元素添加一个或多个类名。

该方法不会移除已存在的 class 属性,仅仅添加一个或多个 class 属性

提示:如需添加多个类,请使用空格分隔类名

// 语法
$(selector).addClass(class)
// 例如
$("div").addClass("add");
// 多个类名
$("body div:first").addClass("add big");

2、removeClass() 方法

removeClass() 方法向被选元素移除一个类名。

3、hasClass() 方法

hasClass() 方法判断被选元素是否包含这个类名。

4、toggleClass() 方法

toggleClass() 方法判断被选元素是否有该类名,如果有就移除它,如果没有,就添加它。

案例效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/jquery-3.6.0.min.js"></script>
    <style>
        ul li{
            width: 100px;
            line-height: 100px;
            text-align: center;
            float: left;
            margin: 10px;
            border: 1px solid cadetblue;
            list-style: none;
        }
        .basic{
            background-color: cornflowerblue;
            font-size: 32px;
            color: green;
        }
        .bigger{color: red;}
    </style>
</head>
<body>
    <input style="margin-left: 60px;" type="button" value="添加basic类">
    <input type="button" value="添加bigger类">
    <input type="button" value="移出bigger类">
    <input type="button" value="判断是否有bigger类">
    <input type="button" value="切换类">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
    <script>
        $(function(){
            // addClass():给元素添加class,如果元素上已经有其他的classname,那么会将新增加的追加到现在有classname后面
            // 找到第一个input标签,绑定单击事件
            $('input:first').click(function(){
                // 先获取到所有li标签,然后在给li添加class
                $('ul li').addClass('basic')
            })
            // 找到第二个input标签,绑定单击事件
            $('input:eq(1)').click(function(){
                // 先获取到所有li标签,然后在给li添加class
                $('ul li').addClass('bigger')
            })
            // removeClass():可以将元素的某个class移除,如果未传参数,则可以将元素上的所有class移除掉
            // 找到第三个input标签,绑定单击事件
            $('input:eq(2)').click(function(){
                // 先获取到所有li标签,然后再移出li上面的class
                $('ul li').removeClass('bigger')// 移出class为bigger的
                // $('ul li').removeClass()// 将元素上所有的class移除掉
            })
            // 找到第四个input标签,绑定单击事件
            $('input:eq(3)').click(function(){
                // 先获取到所有li标签,然后判断li是否有class,如果没有就给添加上,有就移出
                if(!$('ul li').hasClass('bigger')){
                    $('ul li').addClass('bigger')
                }else{
                    $('ul li').removeClass('bigger')
                }
            })
            // 找到第五个input标签,绑定单击事件
            $('input:eq(4)').click(function(){
                // 先获取到所有li标签,然后在给li设置toggleClass,可以实现切换效果
                $('ul li').toggleClass('bigger')
            })
        })
    </script>
</body>
</html>

四、html() 与 text() 与 val()

1、html() 方法

html() 方法设置或返回被选元素的内容(innerHTML)。

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

 当该方法用于设置内容时,则重写所有匹配元素的内容。

提示:如只需设置或返回被选元素的文本内容,请使用 text() 方法。

语法:

// 返回内容:
$(selector).html()
// 设置内容:
$(selector).html(content)
// 使用函数设置内容:
$(selector).html(function(index,currentcontent))
参数 描述
content 必需。规定被选元素的新内容(可包含 HTML 标签)。
function(index,currentcontent) 可选。规定返回被选元素的新内容的函数。

index - 返回集合中元素的 index 位置。

currentcontent - 返回被选元素的当前 HTML 内容。

2、text() 方法

text() 方法设置或返回被选元素的文本内容。

 当该方法用于返回内容时,则返回所有匹配元素的文本内容(会删除 HTML 标记)。

 当该方法用于设置内容时,则重写所有匹配元素的内容。

提示:如需设置或返回被选元素的 innerHTML(文本 + HTML 标记),请使用 html() 方法。

语法:

// 返回文本内容:
$(selector).text()
// 设置文本内容:
$(selector).text(content)
// 使用函数设置文本内容:
$(selector).text(function(index,currentcontent))

3、val() 方法

val() 方法设置或返回被选元素的 value 属性。

当用于返回值时:

该方法返回第一个匹配元素的 value 属性的值。

当用于设置值时:

该方法设置所有匹配元素的 value 属性的值。

提示:val() 方法通常与 HTML 表单元素一起使用。

语法:

// 返回 value 属性:
$(selector).val()
// 设置 value 属性:
$(selector).val(value)
// 通过函数设置 value 属性:
$(selector).val(function(index,currentvalue))

五、节点的操作

1、添加元素

① append() 方法在被选元素的结尾插入指定内容(仍然在该元素的内部)。

提示:

是在父元素内末尾插入子元素

如需在被选元素的开头插入内容,请使用 prepend()

语法:

$(selector).append(content,function(index,html))

案例:在所有<ul>元素结尾插入内容:

$("ul").append("<li>橘子</li>");
参数 描述
content 必需。规定要插入的内容(可包含 HTML 标签)。

可能的值:

  • HTML 元素
  • jQuery 对象
  • DOM 元素
function(index,html) 可选。规定返回待插入内容的函数。
  • index - 返回集合中元素的 index 位置。
  • html - 返回被选元素的当前 HTML。

② appendTo() 方法在被选元素的结尾插入 HTML 元素。

提示:如需在被选元素的开头插入 HTML 元素,请使用 prependTo() 方法。

语法:

$(content).appendTo(selector)

案例:在所有<ul>元素结尾插入内容: 

$("<li>菠萝</li>").appendTo("ul")

③ prepend() 方法在被选元素的开头插入指定内容。

提示:如需在被选元素的结尾插入内容,请使用 append() 方法。

语法与append()相同

④ prependTo() 方法在被选元素的开头插入 HTML 元素。

提示:如需在被选元素的结尾插入 HTML 元素,请使用 appendTo() 方法。

语法与appendTo()相同

⑤ before() 方法在被选元素之前插入指定的内容。

提示:如需在被选元素后插入内容,请使用 after() 方法。

语法:

$(selector).before(content,function(index))
参数 描述
$(selector).remove()

content 规定要插入的内容(可包含 HTML 标签)。

可能的值:

  • HTML 元素
  • jQuery 对象
  • DOM 元素
function(index) 可选。规定返回待插入内容的函数。
  • index - 返回集合中元素的 index 位置。

⑥ after() 方法在被选元素后插入指定的内容。

提示:如需在被选元素前插入内容,请使用 before() 方法。

区别:

  1. append(),appendTo(),prepend(),prependTo():都是给某元素前面/后面添加子元素
  2. before(),after():指的是给某元素前面/后面添加兄弟元素。

2、删除元素

① remove() 方法移除被选元素,包括所有的文本和子节点。

该方法也会移除被选元素的数据和事件。

提示:如需移除元素,但保留数据和事件,请使用detach()方法代替。

提示:如只需从被选元素移除内容,请使用empty()方法。

语法: 

$(selector).remove()

② empty() 方法移除被选元素的所有子节点和内容。

注意:该方法不会移除元素本身,或它的属性。

提示:如需移除元素,但保留数据和事件,请使用detach()方法。

提示:如需移除元素及它的数据和事件,请使用remove()方法。

语法: 

$(selector).empty()

3、替换节点

①replaceWith()方法把被选元素替换为新的内容。

语法:

$(selector).replaceWith(content,function(index))
参数 描述
content 必需。规定要插入的内容(可包含 HTML 标签)。

可能的值:

  • HTML 元素
  • jQuery 对象
  • DOM 元素
function(index) 可选。规定返回替换内容的函数。
  • index - 返回集合中元素的 index 位置。

② replaceAll()方法把被选元素替换为新的HTML元素。

语法:

$(content).replaceAll(selector)
参数 描述
content 必需。规定要插入的内容(必须包含 HTML 标签)。
selector 必需。规定哪一个元素将被替换。

4、复制节点

clone() 方法生成被选元素的副本,包含子节点、文本和属性。

语法:

$(selector).clone(true|false)
参数 描述
true 规定需复制事件处理程序。
false 默认。规定不复制事件处理程序。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到