1. 程式人生 > >【JQuery/整理】篩選器用法小結+JQ追加HTML/獲取屬性

【JQuery/整理】篩選器用法小結+JQ追加HTML/獲取屬性

題圖

        大家好呀,好久不見,正所謂一日不見如隔三秋,咱這兩個月沒見估計都快把小D給忘了哈,額,這個主要怪我啦,這段時間都在趕畢業設計,這不看著快做完了,眼下整理下有關web前臺的資料,這回先貼出一部分JQuery相關的用法和小技巧,一來呢方便我檢視;二來呢還是慣例,幫助我們後來的朋友,哈哈。

        好了,再多扯淡的話還不如咱乾貨來得直接,我上網看朋友們的文章也是一樣的,實實在在的乾貨是最討人喜歡的了,小D馬上呈現上來!

JQuery篩選器用法小結

一、選擇物件

1.1基本選取方式

1、#id:根據給定的ID匹配一個元素。例如:$("#xxx_id")


2、element:匹配所有給定的元素名的元素。例如:$("div")
3、.class:根據給定的類匹配元素。例如:$(".cls1")
4、*:匹配所有元素。例如:$("*")
5、selector1,selector2,…,selectorN:將每一個選擇器匹配到的元素合併後一起返回。例如:$("#xxx_id, div, .cls1")

特殊的,下面是一些表單裡面的一些物件選擇方法

1.2表單類選取方式

1、:button:匹配所有按鈕。例如:$(":button")
2、:checkbox 匹配所有複選框。例如:$(":checkbox")
3、:file 匹配所有檔案域。例如:$(":File")


4、:hidden 匹配所有不可見元素,或type屬性為hidden的元素。例如:$("input:hidden")
5、:image 匹配所有影象。例如:$(":image")
6、:input 匹配所有 input, textarea, select 和 button 元素。例如:$(":input")
7、:password 匹配所有密碼框。例如:$(":password")
8、:radio 匹配所有單選按鈕。例如:$(":radio")
9、:reset 匹配所有重置按鈕。例如:$(":reset")
10、:submit 匹配所有提交按鈕。例如:$(":submit")

11、:text 匹配所有的單行文字框。例如:$(":text")
12、:header 匹配如 h1, h2, h3之類的標題型別的元素。例如:$(":header").css("background", "#000FFF");

二、條件篩選

2.1通過屬性篩選

1、[attribute*=value] 匹配給定的屬性是以包含某些值的元素。例如:$("input[name*='dark'")
2、[attribute!=value] 匹配所有含有指定的屬性,但屬性不等於特定值的元素。例如:$(input[name!='dark')
3、[attribute$=value] 匹配給定的屬性是以某些值結尾的元素。例如:$("input[name$='dark']")
4、[attribute=value] 匹配給定的屬性是某個特定值的元素。例如:$("input[name='dark']")
5、[attribute] 匹配包含給定屬性的元素。例如:$("div[id]")
6、[attribute^=value] 匹配給定的屬性是以某些值開始的元素。例如:$("input[name^='dark']")
7、[selector1][selector2][selectorN] 的形式可以表示同時滿足多個條件。例如:$("input[id][name='dark']")
8、:hidden 匹配所有的不可見元素。例如:$("tr:hidden")
9、:visible 匹配所有的可見元素。例如:$("tr:visible")
10、:checked 匹配所有選中的被選中元素(複選框、單選框等,不包括select中的option)。例如:$("input:checked")
11、:disabled 匹配所有不可用元素。例如:$("input:disabled")
12、:enabled 匹配所有可用元素。例如:$("input:enabled")
13、:selected 匹配所有選中的option元素。例如:$("select option:selected")

2.2通過內容篩選

1、:contains(text) 匹配包含給定文字的元素。例如:$("div:contains('John')")
2、:empty 匹配所有不包含子元素或者文字的空元素。例如:$("td:empty")
3、:has(selector) 匹配含有選擇器所匹配的元素的元素。例如:$("div:has(p)")
4、:parent 匹配含有子元素或者文字的元素。例如:$("td:parent")

2.3通過層級篩選

1、grade_parent child 在給定的祖先元素下匹配所有的後代元素。例如:$("form input")
2、parent > child 在給定的父元素下匹配所有的子元素。例如:$("form > input")
3、prev + next 匹配所有緊接在 prev 元素後的 next 元素。例如:$("label + input")
4、prev ~ siblings 匹配 prev 元素之後的所有 siblings 元素。例如:$("form ~ input")
5、:first-child 匹配第一個子元素。例如:$("ul li:first-child")
6、:last-child 匹配最後一個子元素。例如:$("ul li:last-child")
7、:nth-child(index/even/odd/equation) 匹配其父元素下的第N個子或奇偶元素。例如:$("ul li:nth-child(2)")
8、:only-child 如果某個元素是父元素中唯一的子元素,那將會被匹配。例如:$("ul li:only-child")

2.4通過特殊條件篩選

1、:animated 匹配所有正在執行動畫效果的元素。例如:$("div:animated")
2、:eq(index) 匹配一個給定索引值的元素(從 0 開始)。例如:$("tr:eq(1)")$("div").eq(1)
3、:even 匹配所有索引值為偶數的元素(從 0 開始)。例如:$("tr:even")
4、:first 匹配找到的第一個元素。例如:$("tr:first")
5、:gt(index) 匹配所有大於給定索引值的元素(從 0 開始)。例如:$("tr:gt(0)")
6、:last 匹配找到的最後一個元素。例如:$("tr:last")
7、:lt(index) 匹配所有小於給定索引值的元素。例如:$("tr:lt(2)")
8、:not(selector) 去除所有與給定選擇器匹配的元素。例如:$("input:not(:checked)")
9、:odd 匹配所有索引值為奇數的元素(從 0 開始)。例如:$("tr:odd")

三、我的小例子

        上面整理蒐集了一些資料,下面整合一下來個我專案中的例子:

// 篩選所有被選中的name屬性為SubjectPager_CB的checkbox
$("input:checkbox[name='SubjectPager_CB']:checked").each(
    // 遍歷選擇器選出來的集合,
    function() {
        // $(this)為集合內的每個專案...
    }
);

$("#addSubject span").size();// 獲取ID為addSubject的標籤下span元素的數量

        有了個實戰的是不是看得舒服些啦?哈哈,下面我們繼續!

追加html

一、html()

        $(“#DElement”).html([…]) 操作節點中的內容,一般我們可以用來快速給一個容器中賦值或者取出其中的值。

        舉個栗子:

原始HTML如下:

<div>div1 content</div>
<p>p content</p>
<div>div2 content</div>

則執行$("p").html("abc"); 的結果如下:

<div>div1 content</div>
<p>abc</p>
<div>div2 content</div>

然後再執行$("p").html();獲取到的內容如下:

abc

二、append()

        $(“#DElement”).append(…) 追加到節點中的末尾處。

        舉個栗子:

原始HTML如下:

<div>div1 content</div>
<p>p content</p>
<div>div2 content</div>

則執行$("p").append("abc"); 的結果如下:

<div>div1 content</div>
<p>p contentabc</p>
<div>div2 content</div>

三、prepend()

        $(“#DElement”).prepend(…) 追加到節點中的起點。

        舉個栗子:

原始HTML如下:

<div>div1 content</div>
<p>p content</p>
<div>div2 content</div>

則執行$("p").prepend("abc"); 的結果如下:

<div>div1 content</div>
<p>abcp content</p>
<div>div2 content</div>

四、after()

        $(“#DElement”).after(…) 追加到節點的後面。

        舉個栗子:

原始HTML如下:

<div>div1 content</div>
<p>p content</p>
<div>div2 content</div>

則執行$("p").prepend("<p>abc</p>"); 的結果如下:

<div>div1 content</div>
<p>p content</p>
<p>abc</p>
<div>div2 content</div>

五、before()

        $(“#DElement”).before(…) 追加到節點的前面。

        舉個栗子:

原始HTML如下:

<div>div1 content</div>
<p>p content</p>
<div>div2 content</div>

則執行$("p").prepend("<p>abc</p>"); 的結果如下:

<div>div1 content</div>
<p>abc</p>
<p>p content</p>
<div>div2 content</div>

六、彩蛋:text()

        這個就太簡單了哈,和$("element_id").html()document.getElementById("element_id").innerHTML()類似,同document.getElementById("element_id").innerTEXT(),獲取/設定標籤內的純文字資訊,注意哈,在這裡如果寫入了標籤,比如$("#element_id").text("<p>haha</p>");則裡面的標籤仍然會顯示出來的哦!

JQ獲取屬性

        這個相信對大夥兒來說肯定很簡單的啦,畢竟我用到這個比較少,有些朋友喜歡自定義屬性來寄存些內容到標籤上方便呼叫之類的,或者是通過篩選然後再遍歷獲取其中的某些屬性,這些都是N多種會用到這個的方法啦,我就簡單講一下吧。

$("div .cls1").eq(0).attr("id");// 獲取父元素為div,自身擁有cls1類的第一個元素的ID屬性,想要什麼屬性就填入就行啦
$("div .cls1").eq(0).attr("name", "haha");// 設定其name屬性的值為haha

// 下面是對文字框值的操作
$("#input_element_id").attr("value",'');// 清空input內容
$("#input_element_id").attr("value",'11');// 填入input內容

// 下面是對單/多選框的操作
$("#chk").attr("checked",'');// 設定未選中
$("#chk").attr("checked",true);// 設定選中
if($("#chk").attr('checked') == undefined) // 判斷是否選中

後話

        最近看了一篇文章,講JQ的,說到JQ貌似“落後”了,有新的庫擴充前臺自然是件好的事情,但是作為一個應屆考研落榜生,在參加工作之前就碰到了這種事情略是感覺尷尬,不管啦,好好學習吧,誰剛入行就能牛逼的嘛,腳踏實地的準備著牛逼之路吧!