搜尋
首頁web前端js教程jQuery 選擇器專案實例分析及實作程式碼_jquery

首先廢話一句,jQuery選擇器真心很強大!
在專案中遇到這麼一個問題easyui的問題
 
如圖所示,目前頁面顯示的是「原始報文查詢」的頁面,當時左側導覽列卻選取的是「重發報文查詢」。如何讓右側的選單和左側的導航實現聯動即:左側點擊“原始報文查詢”,那麼右側的“補發運抵報文”展開,並選中“原始報文查詢”,“後台管理”關閉?
實作方式如下
1、右側的「原始報文查詢」等用到的是easyui的tabs控件,查看api知道,tabs有個onSelect方法,只要在onSelect方法中寫入自己想做的事情就可以了。
2、觸發事件是找到了,那麼具體怎麼實現想要的效果呢?
  
左側導覽列程式碼結果如上圖:最外層是easyui的accordion控件,accordion裡有很多pannel,一個pannel對應圖1中的一個父目錄和其下面的子目錄,例如「補發運運抵報告」這一模組。 panel裡有兩個div,
第一個div是父目錄,第二個div裡包含了很多子目錄。
先實作選取右側的tabs時,左側對應的導覽條被選取。先取出所有子目錄的選取狀態,然後讓目前子目錄被選取。

複製程式碼 程式碼如下:

$('#idaccordion li div').removeClass( "selected");
$('#idaccordion span:contains("' title '")').parent().parent().addClass("selected");

3.問題是該選取的是選取的是選取了,但選取的子選單的父選單的父選單並沒有展開。 easyui中的panel有個expand方法,但是怎麼知道哪個panel(既父選單)應該展開呢?如圖2所示:一直選取了“原始報文查詢”,現在要讓補發運抵報告這個父選單展開。 「原始報文查詢「所在的元素span的祖先節點的兄弟節點的第一個子節點才是」補發運抵報告「所在的節點。
複製程式碼 程式碼如下:

if( $('#idaccordion sp3:contains("an ' title '")').length > 0 ){
var accordionTitle = $('#idaccordion span:contains("' title '")').closest('.panel-body').prev() .find('.panel-title').text();
var p = $('#idaccordion').accordion('getPanel',accordionTitle);
p.panel('expand');
}

首先在id為idaccordion的子孫節點中尋找包含文字為title的span(即 原始報文查詢 ),然後找到最近的class為panel-body的祖先節點,然後找到這個節點的前一個兄弟節點(即
),然後找到這個節點的類別為panel-title的子節點,就取得到了這個節點的文本,即」補發運抵報告「。
整體程式碼如下
複製程式碼 程式碼如下:

程式碼如下:
//當右邊選擇某個tab時,左邊對應的選單也被選中,且這個選單所在的accordion展開,其他的accordion關閉
$('#tabs').tabs({
onSelect :function(title){
$('#idaccordion li div').removeClass("selected");
$('#idaccordion span:contains("' title '")').parent() .parent().addClass("selected");
if( $('#idaccordion span:contains("' title '")').length > 0 ){
var accordionTitle = $('# idaccordion span:contains("' title '")').closest('.panel-body').prev().find('.panel-title').text();
var p = $( '#idaccordion').accordion('getPanel',accordionTitle);
p.panel('expand');
}
}
});

平時用的比較少的是closest方法,該方法可以獲取某個元素最近的父元素,還有一個類似的方法parents,兩者的區別如下

parents([expr] )
取得一個包含所有符合元素的祖先元素的元素集合(不包含根元素)。可以透過一個可選的表達式進行篩選。
程式碼如下 程式碼如下:


$('#items') .parents('.parent1');
closest([expr])

closest會先檢查當前元素是否匹配,如果匹配則直接傳回元素本身。如果不符合則向上尋找父元素,一層一層往上,直到找到符合選擇器的元素。如果什麼都沒找到則回傳一個空的jQuery物件。
複製程式碼 程式碼如下:

$('#items1').closest('. parent1');

closest和parents的主要區別是:1,前者從當前元素開始匹配尋找,後者從父元素開始匹配尋找;2,前者逐級向上查找,直到發現匹配的元素後就停止了,後者一直向上查找直到根元素,然後把這些元素放進一個臨時集合中,再用給定的選擇器表達式去過濾;3,前者返回0或1個元素,後者可能包含0 個,1個,或多個元素。
closest對於處理事件委派非常有用。
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
css中id选择符的标识是什么css中id选择符的标识是什么Sep 22, 2022 pm 03:57 PM

在css中,id选择符的标识是“#”,可以为标有特定id属性值的HTML元素指定特定的样式,语法结构“#ID值 {属性 : 属性值;}”。ID属性在整个页面中是唯一不可重复的;ID属性值不要以数字开头,数字开头的ID在Mozilla/Firefox浏览器中不起作用。

使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式Nov 20, 2023 am 11:20 AM

使用:nth-child(n+3)伪类选择器选择位置大于等于3的子元素的样式,具体代码示例如下:HTML代码:<divid="container"><divclass="item">第一个子元素</div><divclass="item"&

css伪选择器学习之伪类选择器解析css伪选择器学习之伪类选择器解析Aug 03, 2022 am 11:26 AM

在之前的文章《css伪选择器学习之伪元素选择器解析​》中,我们学习了伪元素选择器,而今天我们详细了解一下伪类选择器,希望对大家有所帮助!

javascript选择器失效怎么办javascript选择器失效怎么办Feb 10, 2023 am 10:15 AM

javascript选择器失效是因为代码不规范导致的,其解决办法:1、把引入的JS代码去掉,ID选择器方法即可有效;2、在引入“jquery.js”之前引入指定JS代码即可。

css中的选择器包括超文本标记选择器吗css中的选择器包括超文本标记选择器吗Sep 01, 2022 pm 05:25 PM

不包括。css选择器有:1、标签选择器,是通过HTML页面的元素名定位具体HTML元素;2、类选择器,是通过HTML元素的class属性的值定位具体HTML元素;3、ID选择器,是通过HTML元素的id属性的值定位具体HTML元素;4、通配符选择器“*”,可以指代所有类型的标签元素,包括自定义元素;5、属性选择器,是通过HTML元素已经存在属性名或属性值来定位具体HTML元素。

从入门到精通:掌握is与where选择器的使用技巧从入门到精通:掌握is与where选择器的使用技巧Sep 08, 2023 am 09:15 AM

从入门到精通:掌握is与where选择器的使用技巧引言:在进行数据处理和分析的过程中,选择器(selector)是一项非常重要的工具。通过选择器,我们可以按照特定的条件从数据集中提取所需的数据。本文将介绍is和where选择器的使用技巧,帮助读者快速掌握这两个选择器的强大功能。一、is选择器的使用is选择器是一种基本的选择器,它允许我们根据给定条件对数据集进

深度解析is与where选择器:提升CSS编程水平深度解析is与where选择器:提升CSS编程水平Sep 08, 2023 pm 08:22 PM

深度解析is与where选择器:提升CSS编程水平引言:在CSS编程过程中,选择器是必不可少的元素。它们允许我们根据特定的条件选择HTML文档中的元素并对其进行样式化。在这篇文章中,我们将深入探讨两个常用的选择器,即:is选择器和where选择器。通过了解它们的工作原理和使用场景,我们可以大大提升CSS编程的水平。一、is选择器is选择器是一个非常强大的选择

wxss选择器有哪些wxss选择器有哪些Sep 28, 2023 pm 04:27 PM

wxss选择器有元素选择器、类选择器、ID选择器、伪类选择器、子元素选择器、属性选择器、后代选择器和通配选择器等。详细介绍:1、元素选择器,使用元素名称作为选择器,选取匹配的元素,使用“view”选择器可以选取所有的“view”组件;2、类选择器,使用类名作为选择器,选取具有特定类名的元素,使用“.classname”选择器可以选取具有“.classname”类名的元素等等。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用