設置 獲取元素的中的文本:
text():方法
獲取文本時不需要參數。只能獲取文本,獲取不到文本中包含的標簽
設置文本時需要參數。只能設置文本,覆蓋式賦值。如果含有標簽不會被解析,當做字符串
//獲取元素中的文本 .text()方法(沒有參數) 覆蓋式賦值 只能獲取文本
//var $(text) = $(指定的標簽).text()
var $text = $('p').text();
console.log($text);
//給元素設置新文本(有參數) 只能設置文本,如果含有標簽不會被解析 當做字符串返回。
$('p').text($text+"你說啥?"); //字符串拼接 ;
html()方法:
獲取文本時也不需要參數,不僅能獲取文本,連文本中的標簽也能獲取到。
設置文本時需要參數,不僅能獲取文本,連文本中的標簽也能獲取到,也能解析到包含標簽的屬性。
//包裹的標簽和文本都可以獲取到,不僅可以設置文本 還可以設置文本的樣式。
var $text1 = $('p').html();
console.log($text1);
$('p').html($text1+"<span style='color: red;'>哈哈哈</span>")
val()方法:是獲取到value值(多應用于輸入框中)
//val();獲取的是表單的value
var $two = $('input').val();
console.log($two);
//修改value值
$('input').val("你是不是傻");
設置 獲取標簽的屬性:
attr();設置屬性。例如:name ,id class value
獲取 設置 移除 屬性:
//獲取屬性:attr
var $attr = $('p').attr('id');
console.log($attr); //打印出 id的屬性值
//設置屬性值一個或多個屬性 通過大括號包括起來 屬性名與值之間使用引號,屬性與屬性之間用逗號隔開
var $attr1 = $('p').attr({'name':'p','id':"one",'class':"two"});
console.log($attr1);
//移除屬性 removeAttr();// 移除屬性 /單次只能移除一個屬性
var $one = $('p').removeAttr('id');
console.log($one);
關于類的增刪改
//添加class值
$('div').addClass("hehe");
$('div').addClass("haha");
//添加多個類名的時候不會覆蓋掉前面的類名。不同的類有相同的屬性的話 最后一個類生成效果
//移除class值
$('div').removeClass("hehe");
//切換class值
window.onclick = function() {
//如果存在'abc'這個值,就移除掉,否則就添加上
$('div').toggleClass("abc");
}
判斷某個標簽是否含有某個屬性:
//判斷標簽是否具備某個類名 hasClass()返回值是boolean值
var $three = $('h2').hasClass('h3');
console.log($three); // true;
例:
//點擊按鈕切換
$('button').click(function(){
if($('h2').hasClass('h3')==true){
刪除Class
$('h2').removeAttr('class',"h3");
// $('h2').removeClass('h3');
$('h2').addClass('h2');
}
else{
$('h2').removeClass('h2')
$('h2').addClass('h3');
}
})
//根據當前是否有某個類名來判斷是否添加還是刪除類名 (toggleClass)
// $('h2').toggleClass('p3');
$('button').click(function(){
$('h2').toggleClass('h3');
//每次點擊按鈕 toggleClass會判斷當前是否具備參數中的屬性,有則刪,無則添;
})
設置 獲取元素的樣式:
利用jQ來獲取元素的樣式,不管是css樣式還是行內樣式只要是能在頁面中生效,jQ都可以獲取到標簽的屬性,原生的js只能獲取到行內的樣式。
通過。css()方法來設置樣式:style下的樣式
如果數值類型的帶有單位的,必須加上單位,不加單位不會生效。
//獲取css樣式。不管css樣式是行內還是外部,只要能在頁面中生效,jQ都可以獲取到標簽的屬性,原生的js只能獲取css行內樣式。
獲取顏色值的時候 返回值是rbg、或者是rbga;
var $bgcolor = $('p').css('backgroundColor');
console.log($bgcolor);
var $color = $('p').css('color');
console.log($color);
//通過css方法設置樣式
//如果數值類型的帶有單位的,必須加上單位,不加單位不會生效。
$('p').css("font-size","12px");
//設置 獲取元素的高度
var $height = $('p').height();
console.log($height);
//參數值可以使數值類型,當參數是數值時,默認單位是px 如果是以其他形式為單位,需要傳遞包含類型的字符串。
$('p').height('30%');
//設置獲取元素的寬度
var $width = $('p').width();
console.log($width);
$('p').width('100px');
注:寬度:
console.log($('div').innerWidth()); //innerWidth = content + padding
console.log($('div').outerWidth()); //outerWidth = content + padding + border
設置 獲取 相對于文檔的偏移量;
//offset() 是依據窗口的獲取的值,無論設置什么決定了元素的位置,都是距離窗口;
var $offset = $('p').offset();
console.log($offset);
//var object = {left:100,top:100}
//$('p').offset(object);
//$('p').offset({left:10,top:12});
注:由于offset獲取的是一個對象,所有設置的時候必須用對象的方式設置。
獲取相對于定位的祖輩元素的偏移量。
position();
//獲取 元素相對于定位的父元素的偏移量
//positon()方法只能獲取值,不能設置值
$('p').position();
var $positon = $('p').position();
console.log($positon);
設置 獲取滾動條:
水平滾動條 垂直滾動條:
//獲取 設置 水平滾動條的位置 scrollleft()
var $scrollleft = $('p').scrollLeft();
console.log($scrollleft);
//首先必須確認滾動條屬于哪一個標簽,在獲取滾動條所對應的標簽再設置scrollleft才會生效,方法的參數值是一個數值類型。
//獲取和設置垂直滾動條
var $scrolltop = $('p').scrollTop();
console.log($scrolltop);
//點擊按鈕 返回頂部
// $('body').scrollTop(2000);
$('button').click(function(){
$('body').scrollTop(0);
//$('button').hide();
})
元素的包裹:給指定的節點添加父元素。
warp()方法:給選中的標簽添加父元素:
warpAll():給所有相同的標簽添加父元素。如果相同的標簽中混有其他的兄弟標簽。會把這些標簽放到最后。
warpInner()給標簽的內容添加一個新的標簽來包裹:
<script type="text/javascript">
$(document).ready(function(){
//包裹標簽(包裹節點):給指定節點添加父標簽
//warp() 給選中的方法添加父元素
$('li').warp('<ul></ul>');
//wrapAll 給所有相同的標簽添加一個共同的父元素,如果相同標簽中混合有其他兄弟標簽會把這些兄弟標簽移到最后
$('li').wrapAll('<ul></ul>');
//warpInner 給標簽的內容添加一個新的標簽來包裹
$('a').wrapInner('<b></b>');
})
</script>
注;
//解包裹
$('li').unwrap();
DOM的增刪改查:
創建文本節點:
//創建
//1 把節點拼接成字符串
var textNode = '<p>又回到春末的五月,凌晨的集市人不多</p>';
//2 jQ創建
var textnode2 = $('<p></p>').text('小孩在門前唱著歌,陽光溫暖了溪河');
//3 DOM創建
var textNode3 = document.createElement('p');
textNode3.innerText = "柳絮乘著大風吹,樹影下的人想睡。"
添加帶文本的首和尾:
//把節點添加到文檔最后
//A>B A.append(B);
// $('body').append(textNode,textnode2,textNode3);
//A>B B.appendTo(A)
$(textnode2).appendTo('body');
//把節點插入文檔的開頭
// A.prepend(B)
$('body').prepend(textNode3);
// B.prependTo(A);
$(textNode).prependTo('body');
添加到某個標簽的前后:
/*
after:在被選元素之后插入標簽
before:在被選元素之前插入標簽
*/
$('div').after(textNode3);
$('div').before(textnode2);
//在操作節點的這些方法中,參數可以為一個JQ對象,或者為一個字符串(HTML結構):
刪除,替換 ,清空節點:
//刪除節點
//$('h1').remove(); //將自己移除
//清空自己所有的子元素
//$('body').empty();
//替換元素
$('span').replaceWith('<a href="#">耀國國</a>');
DOM增刪改:
<script type="text/javascript">
$(document).ready(function(){
//刪除節點 remove(); 方法返回值是刪除的節點,如果后續用到刪除的節點,則需要保存這個返回值
var $p = $('p').remove();
$('body').append($p);
//toggle 隱藏
//$('button').click(function(){
//$('p').toggle();
//});
//判斷是否含有p 如果有 刪掉 如果沒有 添加
/* $('button').click(function(){
if($('p').length !=0){
$('p').remove();
}else{
$($p).prependTo('body')
}
});
*/
//復制節點 clone()用來復制標簽,如果沒有參數 則只是復制標簽的樣式及文本 沒有事件。 如果有參數true 則事件也會被復制。
// var $btn = $('button').clone(true);
// 把復制的標簽添加在body后面
//$('body').append($btn);
$('button').click(function(){
//empty 清空父元素下的內容及所有的子標簽。
$("#car").empty();
});
//A.replaceWith(B); 最后顯示的是B;
//B.replaceAll(A); 最后顯示的是A;
var $img = '<img src="img/QQ圖片20160827090103.jpg">';
$('button').click(function(){
//$('img').replaceWith($img);
$($img).replaceAll('img');
});
})
</script>