2017.9.28 查看數據庫操作記錄、彈窗問題、JS選擇器和JQuery選擇器

分享人:蔡永堅


1. 查看數據庫操作記錄

SELECT 
       SUBSTRING(ST.text, ( QS.statement_start_offset / 2 ) + 1,
                  ( ( CASE statement_end_offset
                        WHEN -1 THEN DATALENGTH(st.text)
                        ELSE QS.statement_end_offset
                      END - QS.statement_start_offset ) / 2 ) + 1) AS '執行語句',
       ST.text AS '未格式化語句',
       QS.execution_count AS '執行次數',
       QS.total_elapsed_time  '總花費時間(毫秒)',
       QS.total_logical_reads AS '邏輯讀取次數',
       QS.total_logical_writes AS '邏輯寫入次數',
       QS.total_physical_reads AS '物理讀取次數',       
       QS.creation_time AS '編譯計劃的時間' ,  
       last_execution_time AS '上次執行時間',
       QS.*
FROM   sys.dm_exec_query_stats QS
       CROSS APPLY 
sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE  QS.creation_time > '2017-09-27 13:33:40'
ORDER BY  QS.last_execution_time  desc
image.png

2. 彈窗問題

A頁面通過AlertPage彈出高為200px的B頁面,若在B頁面再AlertPage出一個高為400的C頁面,直接彈出的話效果如下圖。

image.png

這時若我們想要打卡C時C能完全顯示,不彈出C時B高度依然為200px,這時我們要在打開C時將B的高度調大,C關閉時B高度變回200px。

AlertPage('M.aspx', 'C', 450, 400);
//設置C關閉時變回200px
OpeningDialog.openingDialog.bind("close", function () {
parent.OpeningDialog.openingDialog.jiframe.parent().css("height", "200px")},this);
//打開時高度變成450px
parent.OpeningDialog.openingDialog.jiframe.parent().css("height", "450px");

效果如下圖所示:

image.png

3. JS選擇器

建議:JS里的代碼用單引號。
好處之一:Html中用的是雙引號,在JS中調用Html代碼的時候可以直接復制。

  • 基本選擇器

基本選擇器是JQuery中最常用的選擇器,也是最簡單的選擇器,它通過元素id、class 和標簽名來查找DOM元素。這個非常重要,下面的內容都是以此為基礎,逐級提高的。
1).“$(“#id”)”,獲取id指定的元素,id是全局唯一的,所以它只有一個成員。
2).“$(“.class”)”,獲取class指定的元素,不同的元素可以具有相同的class屬性,所以它可能具有多個成員。
3).“$(“element”)”,獲取element(元素名,比如div、table等)指定的元素,它可能具有多個成員。
4).“$(“*”)”,獲取所有元素,相當于document。
5).“$(“selector1,selector2,…,selectorN”)”,將每個選擇器匹配到的元素合并后一起返回。返回selector1匹配的集合+selector2匹配的集合+…+selectorN匹配的集合。

  • 層次選擇器

什么是層次?層次就是父子關系、兄弟關系的節點。所以,層次選擇器就是用來獲取指定元素的父子節點、兄弟節點。
1).“$(“ancestor descendant”)”,獲取ancestor元素下邊的所有元素。
2).“$(“parent > child”)”,獲取parent元素下邊的所有子元素(只包含第一層子元素)。
3).“$(“pre + next”)”,獲取緊隨pre元素的后一個兄弟元素。
4).“$(“pre ~ siblings”)”,獲取pre元素后邊的所有兄弟元素。

  • 過濾選擇器

過濾?肯定是要添加過濾條件的。通過“:”添加過濾條件,比如“$(“div:first”)”返回div元素集合的第一個div元素,first是過濾條件。
按照不同的過濾規則,過濾選擇器可以分為基本過濾,內容過濾,可見性過濾,屬性過濾,子元素過濾和表單對象屬性過濾選擇器。

1). 基本過濾選擇器

a) “:first”,選取第一個元素,別忘記它也是被放在一個集合里哦!因為JQuery它是DOM對象的一個集合。如,“$("tr:first")”返回所有tr元素的第一個tr元素,它仍然被保存在集合中。
b) “:last”,選取最后一個元素。如,“$("tr:last")”返回所有tr元素的最后一個tr元素,它仍然被保存在集合中。
c) “:not(selector)”,去除所有與給定選擇器匹配的元素。如,“$("input:not(:checked)")”返回所有input元素,但去除被選中的元素(單選框、多選框)。
d) “:even”,選取所有元素中偶數的元素。因為JQuery對象是一個集合,這里的偶數指的就是集合的索引,索引從0開始。
e) “:odd”,選取所有元素中奇數的元素,索引從0開始。
f) “:eq(index)”,選取指定索引的元素,索引從0開始。
g) “:gt(index)”,選取索引大于指定index的元素,索引從0開始。
h) “:lt(index)”,選取索引小于指定index的元素,索引從0開始。
i) “:header”,選取所有的標題元素,如hq、h2等。
j) “:animated”,選取當前正在執行的所有動畫元素。

2). 內容過濾選擇器

它是對元素和文本內容的操作。
a) “:contains(text)”,選取包含text文本內容的元素。
b) “:empty”,選取不包含子元素或者文本節點的空元素。
c) “:has(selector)”,選取含有選擇器所匹配的元素的元素。
d) “:parent”,選取含有子元素或文本節點的元素。(它是一個父節點)

3). 可見性過濾選擇器

根據元素的可見與不可見狀態來選取元素。
“:hidden”,選取所有不可見元素。
“:visible”,選擇所有可見元素。
可見選擇器:hidden 不僅包含樣式屬性 display 為 none 的元素,也包含文本隱藏域 (<input type=“hidden”>)和 visible:hidden 之類的元素。

4).屬性過濾選擇器

通過元素的屬性來選取相應的元素。
a) “[attribute]”,選取擁有此屬性的元素。
b) “[attribute=value]”,選取指定屬性值為value的所有元素。
c) “[attribute !=value]”,選取屬性值不為value的所有元素。
d) “[attribute ^= value]”,選取屬性值以value開始的所有元素。
e) “[attribute $= value]”,選取屬性值以value結束的所有元素。
f) “[attribute *= value]”,選取屬性值包含value的所有元素。
g) “[selector1] [selector2]…[selectorN]”,復合性選擇器,首先經[selector1]選擇返回集合A,集合A再經過[selector2]選擇返回集合B,集合B再經過[selectorN]選擇返回結果集合。

5). 子元素過濾選擇器

一看名字便是,它是對某一元素的子元素進行選取的。
a) “:nth-child(index/even/odd)”,選取索引為index的元素、索引為偶數的元素、索引為奇數的元素。
l nth-child(even/odd):能選取每個父元素下的索引值為偶(奇)數的元素。
l nth-child(2):能選取每個父元素下的索引值為 2 的元素。
l nth-child(3n):能選取每個父元素下的索引值是 3 的倍數的元素。
l nth-child(3n + 1):能選取每個父元素下的索引值是 3n + 1的元素。
b) “:first-child”,選取第一個子元素。
c) “:last-child”,選取最后一個子元素。
d) “:only-child”,選取唯一子元素,它的父元素只有它這一個子元素。

6). 表單過濾選擇器

選取表單元素的過濾選擇器。
a) “:input”,選取所有<input>、<textarea>、<select >和<button>元素。
b) “:text”,選取所有的文本框元素。
c) “:password”,選取所有的密碼框元素。
d) “:radio”,選取所有的單選框元素。
e) “:checkbox”,選取所有的多選框元素。
f) “:submit”,選取所有的提交按鈕元素。
g) “:image”,選取所有的圖像按鈕元素。
h) “:reset”,選取所有重置按鈕元素。
i) “:button”,選取所有按鈕元素。
j) “:file”,選取所有文件上傳域元素。
k) “:hidden”,選取所有不可見元素。

7).表單對象屬性過濾選擇器

選取表單元素屬性的過濾選擇器。
“:enabled”,選取所有可用元素。
“:disabled”,選取所有不可用元素。
“:checked”,選取所有被選中的元素,如單選框、復選框。
“:selected”,選取所有被選中項元素,如下拉列表框、列表框。


JQuery選擇器大全

鏈接:jQuery選擇器總結

jQuery 的選擇器可謂之強大無比,這里簡單地總結一下常用的元素查找方法

$("#myELement") 選擇id值等于myElement的元素,id值不能重復在文檔中只能有一個id值是myElement所以得到的是唯一的元素
$("div") 選擇所有的div標簽元素,返回div元素數組
$(".myClass") 選擇使用myClass類的css的所有元素
$("*") 選擇文檔中的所有的元素,可以運用多種的選擇方式進行聯合選擇:例如$("#myELement,div,.myclass")

  • 層疊選擇器:

$("form input") 選擇所有的form元素中的input元素
$("#main > *") 選擇id值為main的所有的子元素
$("label + input") 選擇所有的label元素的下一個input元素節點,經測試選擇器返回的是label標簽后面直接跟一個input標簽的所有input標簽元素
$("#prev ~ div") 同胞選擇器,該選擇器返回的為id為prev的標簽元素的所有的屬于同一個父元素的div標簽

  • 基本過濾選擇器:

$("tr:first") 選擇所有tr元素的第一個
$("tr:last") 選擇所有tr元素的最后一個
$("input:not(:checked) + span")

過濾掉:checked的選擇器的所有的input元素

$("tr:even") 選擇所有的tr元素的第0,2,4... ...個元素(注意:因為所選擇的多個元素時為數組,所以序號是從0開始)

$("tr:odd") 選擇所有的tr元素的第1,3,5... ...個元素
$("td:eq(2)") 選擇所有的td元素中序號為2的那個td元素
$("td:gt(4)") 選擇td元素中序號大于4的所有td元素
$("td:ll(4)") 選擇td元素中序號小于4的所有的td元素
$(":header")
$("div:animated")

  • 內容過濾選擇器:

$("div:contains('John')") 選擇所有div中含有John文本的元素
$("td:empty") 選擇所有的為空(也不包括文本節點)的td元素的數組
$("div:has(p)") 選擇所有含有p標簽的div元素
$("td:parent") 選擇所有的以td為父節點的元素數組

  • 可視化過濾選擇器:

$("div:hidden") 選擇所有的被hidden的div元素
$("div:visible") 選擇所有的可視化的div元素
屬性過濾選擇器:

$("div[id]") 選擇所有含有id屬性的div元素
$("input[name='newsletter']") 選擇所有的name屬性等于'newsletter'的input元素

$("input[name!='newsletter']") 選擇所有的name屬性不等于'newsletter'的input元素

$("input[name^='news']") 選擇所有的name屬性以'news'開頭的input元素
$("input[name$='news']") 選擇所有的name屬性以'news'結尾的input元素
$("input[name*='man']") 選擇所有的name屬性包含'news'的input元素

$("input[id][name$='man']") 可以使用多個屬性進行聯合選擇,該選擇器是得到所有的含有id屬性并且那么屬性以man結尾的元素

  • 子元素過濾選擇器:

$("ul li:nth-child(2)"),$("ul li:nth-child(odd)"),$("ul li:nth-child(3n + 1)")

$("div span:first-child") 返回所有的div元素的第一個子節點的數組
$("div span:last-child") 返回所有的div元素的最后一個節點的數組
$("div button:only-child") 返回所有的div中只有唯一一個子節點的所有子節點的數組

  • 表單元素選擇器:

$(":input") 選擇所有的表單輸入元素,包括input, textarea, select 和 button

$(":text") 選擇所有的text input元素
$(":password") 選擇所有的password input元素
$(":radio") 選擇所有的radio input元素
$(":checkbox") 選擇所有的checkbox input元素
$(":submit") 選擇所有的submit input元素
$(":image") 選擇所有的image input元素
$(":reset") 選擇所有的reset input元素
$(":button") 選擇所有的button input元素
$(":file") 選擇所有的file input元素
$(":hidden") 選擇所有類型為hidden的input元素或表單的隱藏域

  • 表單元素過濾選擇器:

$(":enabled") 選擇所有的可操作的表單元素
$(":disabled") 選擇所有的不可操作的表單元素
$(":checked") 選擇所有的被checked的表單元素
$("select option:selected") 選擇所有的select 的子元素中被selected的元素

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • $("#myELement") 選擇id值等于myElement的元素,id值不能重復在文檔中只能有一個id...
    itachi閱讀 274評論 0 0
  • jQuery選擇器 jQuery選擇器完全繼承了CSS的風格。學會使用選擇器是學習jQuery的基礎,jQuery...
    AuthorJim閱讀 512評論 0 1
  • jQuery 的選擇器可謂之強大無比,這里簡單地總結一下常用的元素查找方法 $("#myELement") 選擇...
    web蝸牛閱讀 324評論 0 0
  • 想做一份JQuery選擇器的列表,po到這里可以時刻復習。就從網上找了一篇比較全的,自己進行了修訂。 層疊選擇器:...
    摘星_s閱讀 356評論 0 3
  • jQuery 的選擇器強大無比,這里簡單地總結一下常用的元素查找方法 $("#myELement") 選擇i...
    _士心_閱讀 266評論 0 0