jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

一丶jQ操作标签内文本

html() 标签元素中的内容

/** 替换的内容可以使一个js对象,jq对象,文本 **/
	/* 获取值:获取选中标签元素的所有内容 ,包括标签*/
		$('ul').html()
            "
                <li>1</li>
                <li>2</li>
                <li>3</li>
            "

	/* 设置值:设置该元素的所有内容,会替换掉标签中原来的内容 */
		$('#box').html('<a>哈哈哈</a>')

text() 标签元素的文本内容

/** 替换的内容都会变成文本样式,html标签不会渲染,jsjq对象则是地址	 **/
	/* 获取值:获取选中标签元素的文本内容*/
		$('ul').text()
            "
                1
                2
                3
            "

	/* 设置值:设置该元素的所有文本内容 */
		$('ul').text('替换了所有内容')
		jQuery.fn.init [ul, prevObject: jQuery.fn.init(1)]
    
        
//PS:   
	text()方法接收的值为标签的时候 不会被渲染为标签元素 只会被当做值渲染到浏览器中 

二丶jQ操作文档标签

插入标签

​   ​   子元素可以为:stirng | element(js对象) | jquery元素

/* append 和 appendTo  : 追加到某个元素之后 */
	//父元素.append(子元素)
	 $('ul').append('<li>抽象类1</li>') // jq对象后,末尾添加 子对象


	//子元素.appendTo(父元素)
	 $('<li>抽象类2</li>').appendTo('ul') // 子对象必须转成jq对象 ,末尾添加 Jq对象后


/* prepend 和 prependTo : 添加到某个元素之前 */

	//父元素.prepend(子元素)
	 $('ul').prepend('<li>抽象类1</li>') // jq对象前,添加 子对象


	//子元素.prependTo(父元素)
     $('<li>抽象类2</li>').prependTo('ul') // 子对象必须转成jq对象 ,添加 Jq对象前



/* after 和 insertAfter : 兄弟元素之后插入某个元素/内容 */
	
	//兄弟元素.after(要插入的兄弟元素)
	 $('#l2').after('<li>哈哈</li>') 


	//要插入的兄弟元素.insertAfter(兄弟元素)
     $('<li>哈哈2</li>').insertAfter('#l2') 



/* before 和 insertBefore : 兄弟元素之前插入某个元素/内容 */

	//兄弟元素.before(要插入的兄弟元素)
     $('#l2').before('<li>哈哈3</li>')  

	//要插入的兄弟元素.insertBefore(兄弟元素)
     $('<li>哈哈4</li>').insertBefore('#l2')  




//PS:
	如果追加的jquery对象原本在文档树中,那么这些元素将从原位置上消失。简言之,就是移动操作。

​   ​   示例代码:👇

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../day49 JQ/jquery3.4.1.js"></script>
</head>
<body>
<ul>
    <li>唱</li>
    <li id="l2">跳</li>
    <li>rap</li>
</ul>
</body>
<script>
   var  li=document.createElement('li')

    // console.log($('ul').text())  // 查询所有文本内容
    // console.log($('ul').html())  // 查询所有文本内容+标签

    $('ul').append('<li>抽象类1</li>') // jq对象后,末尾添加 子对象
    $('<li>抽象类2</li>').appendTo('ul') // 子对象必须转成jq对象 ,末尾添加 Jq对象后
    //
    $('ul').prepend('<li>抽象类1</li>') // jq对象前,添加 子对象
    $('<li>抽象类2</li>').prependTo('ul') // 子对象必须转成jq对象 ,添加 Jq对象前

    $('#l2').after('<li>哈哈</li>')  //
    $('<li>哈哈2</li>').insertAfter('#l2')  //
    $('#l2').before('<li>哈哈3</li>')  //
    $('<li>哈哈4</li>').insertBefore('#l2')  //

</script>
</html>

删除标签

//删除节点后,事件也会删除(简言之,删除了整个标签)
	$(selector).remove();   //被删掉的对象可以做返回值

// 删除节点后,事件会保留	
	$(selector).detach(); 	//被删掉的对象可以做返回值

// 清空选中元素中的所有后代节点
	$(selector).empty(); 	

​   ​   示例代码:👇

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery3.4.1.js"></script>
</head>
<body>
<button>按钮</button>
</body>
<script>
    $('button').click(function () {
        alert('123')
    })
</script>
</html>

修改标签

//选择器被替换:将所有匹配的元素替换成指定的string、js对象、jquery对象。

/* replacWith : 指定jq对象元素被替换成指定的 string,js对象,jq对象 */
	$(选择器).replaceWith(content)
	
/* replaceAll: 内容(string,jq对象,js对象) 替换 指定的jq对象 */
	$(content). replaceAll(选择器)

​   ​   示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery3.4.1.js"></script>
</head>
<body>
<ul>
    <li >一</li>
    <li >二</li>
    <li >三</li>
</ul>
</body>
<script>

    //创建一个sp对象
    var sp=document.createElement('span')
    sp.innerText='alex'

    // replaceWith
    $('li:first').replaceWith(sp);

    //replaceAll
    $(sp).replaceAll($('li:last'))
</script>
</html>

clone()克隆标签

// 克隆匹配的DOM元素 , 当 clone(true) 克隆这个标签的所有,包括事件.
	$(选择器).clone();
	

​   ​   示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery3.4.1.js"></script>
</head>
<body>
<button>点击</button>
</body>
<script>
    $('button').click(function () {
        // this 指的是当前的这个对象
        var new_btn= $(this).clone()
        $(new_btn).insertAfter($(this))
    })
    
    // 当 clone(true) 克隆这个标签的所有,包括事件
     $('button').click(function () {
        // this 指的是当前的 js对象
        var new_btn= $(this).clone(true)
        //insertAfter 添加到button标签之后
        $(new_btn).insertAfter($(this))
    })
</script>
</html>

三丶jQ操作属性

attr()获取/设置属性值:

/* 获取值 */
	//语法: $('选择器').attr('属性名')
		$('div').attr('id')  //获取div的id属性值



/* 设置值 */
  //设置一个值
	//语法: $('选择器').attr('属性名','属性值') 
		$('div').attr('class','box') //为div标签添加box类


  //设置多个值
	//语法: $('选择器').attr({'属性名1':'属性值2','属性名2':'属性值2'}) 
		$('div').attr({'class':'box','id':'d1'}) //为div标签添加box类和id

removeAttr()移除属性:

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

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

prop():

/* 查看属性 */
	// 语法: $('选择器').prop('属性')
		$('span').prop('title');


/* 修改属性,属性必须已经存在标签上 */
	//修改单个值
	// 语法: $(selector).prop(property,value)
	 	$('div').prop('id','1bsad')
	
	
	// 修改多个属性
	// 语法: $(selector).prop({property:value, property:value,...})
         $('div').prop({'id':'1bsad','title':'你好啊'})
// checked篇章
$('input').attr('checked')
"checked"

$('input').prop('checked')
true

$('input').prop('cheched',false)  //设置取消选中

​   ​   综合示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery3.4.1.js"></script>
</head>
<body>
<!--<div title="abc" id="123"></div>-->

<input type="radio" name="sex"  value="1" checked>男
<input type="radio" name="sex" value="2">女
<input type="checkbox" name="hobby" value="1" >唱
<input type="checkbox" name="hobby" value="2" >跳
<input type="checkbox" name="hobby" value="3" >rap

</body>
<script>
     var div=$('div');

    //获得属性值
     var v1=div.attr('id')
     console.log(v1)

    //设置属性值
     div.attr('name','ab');//单个
     div.attr({'name':'ab','value':'123'});//多个

    // 移除属性
     div.removeAttr('id');//移除一个属性
     div.removeAttr('id title') ; // 移除多个属性

    //prop 查看属性
     console.log(div.prop('id'))

    //prop 修改属性,属性必须已经存在标签上
        // 一个值
             $('div').prop('name','1bsad')
        // 多个值
             $('div').prop({'id':'1bsad','title':'你好啊'})




</script>
</html>

四丶jQ操作class属性

addClass()添加类:

/* 指定选择器元素添加指定的类名 */
	$('div').addClass('box');  //添加一个

    $('div').addClass('box c2');  //添加多个

removeClass()移除类:

/* 从所有匹配的元素中删除全部或者是指定的类 */
	$('div').removeClass('box'); //移除box类
	
	$('div').removeClass('box c2'); //移除box类 和c2类

toggleClass()类的切换:

/* toggleClass() :存在就删除, 不存在就添加上 */
	$('div').toggleClass('c2');

	
    $('span').click(function(){
        //动态的切换class类名为active
        $(this).toggleClass('active')
    })

​   ​   综合示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="/javascript" src="jquery-3.3.1.js"></script>

    <style type="text/css">

        div{
            width: 100px;
            height: 100px;
        }
        .active {

            background-color: red;
        }
        .c1{
            width: 200px;
            background-color: cornflowerblue;
        }
        .c2{
            background-color: gray;
        }

    </style>
    <script src="jquery3.4.1.js"></script>
</head>
<body>

<div class=""></div>
<button>点击</button>

</body>
<script type="text/javascript">
    $('button').click(function () {
        // $('div').addClass('c1') ;  // 添加一个样式
        // $('div').addClass('c1 c2'); //添加多个样式

        // $('div').removeClass('c1')  //  移除指定样式
        // $('div').removeClass()  //  移除所有样式
        
        // 点击切换
        $('div').toggleClass('c2')
    })
</script>
</html>

五丶jQ操作表单value

val()获取值:input,textarea,select等

/* 获取值: 用于表单控件中获取值 */
	$('选择器').val()

/* 设置值: */
	$('选择器').val('新值')


//PS:
    对于选择框 : 单选 多选 下拉选择
    设置选中的值需要放在数组中 : 
        $(':radio').val([1])
        $(':radio').val([1,2,3])

​   ​   示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <form action="">
            <input type="radio" name="sex"  value="112" />男
            <!-- 设置cheked属性表示选中当前选项 -->
            <input type="radio" name="sex"  value="11" checked="" />女
            <input type="radio" name="sex"  value="11" />gay

            <input type="checkbox" value="a" checked=""/>吃饭
            <input type="checkbox" value="b" />睡觉
            <input type="checkbox" value="c" checked=""/>打豆豆

    <!-- 下拉列表 option标签内设置selected属性 表示选中当前 -->
            <select name="timespan" id="timespan" class="Wdate"   >
                <option value="1">8:00-8:30</option>
                <option value="2" selected="">8:30-9:00</option>
                <option value="3">9:00-9:30</option>
            </select>
            <input type="text" name="" id="" value="111" />
    </form>

</body>
<script type="text/javascript" src="jquery3.4.1.js"></script>
    <script type="text/javascript">

        $(function(){
            // 一、获取值
                //1.获取单选框被选中的value值
                console.log($('input[type=radio]:checked').val())

                //2.复选框被选中的value,获取的是第一个被选中的值
                console.log($('input[type=checkbox]:checked').val())

                //3.下拉列表被选中的值

                var obj = $("#timespan option:selected");
                // 获取被选中的值
                var  time  = obj.val();
                console.log(time);
                // 获取文本
                var  time_text  = obj.text();
                console.log("val:"+time+" text"+ time_text );

                //4.获取文本框的value值
                console.log($("input[type=text]").val())//获取文本框中的值

                // 二.设置值
                //1.设置单选按钮和多选按钮被选中项
                $('input[type=radio]').val(['112']);
                $('input[type=checkbox]').val(['a','b']);


                //2.设置下拉列表框的选中值,必须使用select
                /*因为option只能设置单个值,当给select标签设置multiple。
                那么我们设置多个值,就没有办法了,但是使用select设置单个值和多个值都可以
                */
                $('select').val(['3','2'])


                //3.设置文本框的value值
                $('input[type=text]').val('试试就试试')

        })

    </script>

</html>

六丶jQ操作css样式

css(属性名,属性值):

/* 获取css的某个样式的值 */
	$('div').css('color')
	
/* 直接修改css的属性 */
	$('div').css('color','red') ;  //单个值
	$('div').css({'color':'red','background-color':'lightgray'}) ;  //单个值

​​   ​   示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery3.4.1.js"></script>
    <style>
        div{
            width: 100px;
            height: 100px;
        }
    </style>
</head>
<body>
<div></div>
<input type="text" name="a" value="123">
</body>
<script>
    // val
   var val= $('input').val();
   console.log(val)

   //css
   $('div').css('background-color','red')
    
</script>
</html>

七丶jQ操作盒子样式

​​   ​   设置值:变得永远是content的值

内容:

​​   ​   宽度(width)和高度(height)

/* 宽度 */
	//获取宽度 返回匹配元素中第一个元素的宽,一个没有单位的数值
		$('选择器').width() 
	
	//设置宽度
		$('选择器').width( value ) 


/* 高度 */
	//获取高度 返回匹配元素中第一个元素的高,一个没有单位的数值
		$('选择器').height() 
	
	//设置高度
		$('选择器').height( value ) 

内容+padding:

​​   ​   宽度(innerWidth)和高度(innerHeight)

/* 内部宽 */
    // 获取
        $('选择器').innerWidth();
    //设置
        $('选择器').innerWidth(value);


/* 内部高 */
    // 获取
        $('选择器').innerHeight();
    //设置
        $('选择器').innerHeight(value);

内容+padding+border:

​​   ​   宽度(outerWidth)和高度(outerHeight)

// 外部宽
     .outerWidth() //获取第一个匹配元素 :内容+padding+border的宽
     .outerWidth(true) //获取第一个匹配元素:内容+padding+border+margin的宽

     .outerWidth(value) //设置多个,调整的是“内容”的宽


//外部高
     .outerHeight() //第一个匹配元素:获取内容+padding+border的高
     .outerHeight(true) //第一个匹配元素:获取内容+padding+border+margin的高

     .outerHeight( value ) //设置多个,调整的是“内容”的高

​   ​   简单示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒模型</title>
    <style>
        *{
            margin: 0;
        }
        div{
            width: 100px;
            height: 100px;
            background-color: rebeccapurple;
            padding: 10px;
            margin: 10px;
            border: 10px solid #ffd19b;
        }
    </style>
    <script src="jquery3.4.1.js"></script>
</head>
<body>
<div></div>
</body>
<script>
    // 内容的宽 width
    //     $('div').width(); //获取原本宽度
    //     $('div').width(200); //设置宽度
    //内容的高 height
    //     $('div').height(); //获取原本高度
    //      $('div').height(200); //设置高度


    // 内容 + padding
        // 宽度
            // $('div').innerWidth()
        // 高度
            // $('div').innerHeight()


    // 内容+padding+border
        $('div').outerWidth()   //140
        $('div').outerWidth(true) //160
        $('div').outerHeight()
        $('div').outerHeight(true)
</script>
</html>

八丶滚动条距离属性

$(window).scrollLeft()
$(window).scrollTop()

// 水平方向
    .scrollLeft()      //获取
    .scrollLeft( value )//设置

// 垂直方向
    .scrollTop() //获取
    .scrollTop( value ) //设置
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 2000px;
            height: 2000px;
        }
    </style>
    <script src="jquery3.4.1.js"></script>
</head>
<body>
<div>1</div>
</body>
<script>
    $(window).scrollLeft()
    $(window).scrollTop()
</script>
</html>
posted @ 2019-08-16 22:02  染指未来  阅读(1097)  评论(0编辑  收藏  举报