1. 程式人生 > >Javascript JQuery獲取當前元素的兄弟元素/上一個/下一個元素(轉)

Javascript JQuery獲取當前元素的兄弟元素/上一個/下一個元素(轉)

var chils= s.childNodes; //得到s的全部子節點
var par=s.parentNode; //得到s的父節點
var ns=s.nextSbiling; //獲得s的下一個兄弟節點
var ps=s.previousSbiling; //得到s的上一個兄弟節點
var fc=s.firstChild; //獲得s的第一個子節點
var lc=s.lastChile; //獲得s的最後一個子節點

JS獲取節點父級,子級元素

先說一下JS的獲取方法,其要比JQUERY的方法麻煩很多,後面以JQUERY的方法作對比。

JS的方法會比JQUERY麻煩很多,主要則是因為FF瀏覽器,FF瀏覽器會把你的換行也當作DOM元素

<div id="test">
    <div></div>
    <div></div>
</div>

原生的JS獲取ID為test的元素下的子元素。

可以用:

var a = docuemnt.getElementById("test").getElementsByTagName_r("div");

這樣是沒有問題的

此時a.length=2;

但是如果我們換另一種方法

var b =document.getElementByIdx_x("test").childNodes;

此時b.length 在IE瀏覽器中沒問題,其依舊等於2,但是在FF瀏覽器中則會使4,是因為FF把換行也當做一個元素了。

所以,在此,我們就要做處理了,需遍歷這些元素,把元素型別為空格而且是文字都刪除。

複製程式碼
function del_ff(elem){
    var elem_child = elem.childNodes;
    for(var i=0; i<elem_child.length;i++){
        if(elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue))
        {
            elem.removeChild(elem_child)
        }
    }
}    
複製程式碼

上述函式遍歷子元素,當元素裡面有節點型別是文字並且文字型別節點的節點值是空的。就把他刪除。

nodeNames可以得到一個節點的節點型別,/\s/是非空字元在JS裡的正則表示式。前面加!,則表示是空字元test() 方法用於檢測一個字串是否匹配某個模式.語法是:RegExpObject.test(string)

如果字串 string 中含有與 RegExpObject 匹配的文字,則返回 true,否則返回 false。

nodeValue表示得到這個節點裡的值。

removeChild則是刪除元素的子元素。

之後,在呼叫子,父,兄,這些屬性之前,呼叫上面的函式把空格清理一下就可以了

<div id="test">
    <div></div>
    <div></div>
</div>
複製程式碼
<script>
    function dom() {
        var s= document.getElementByIdx_x("test");
        del_ff(s); //清理空格
        var chils= s.childNodes; //得到s的全部子節點
        var par=s.parentNode; //得到s的父節點
        var ns=s.nextSbiling; //獲得s的下一個兄弟節點
        var ps=s.previousSbiling; //得到s的上一個兄弟節點
        var fc=s.firstChild; //獲得s的第一個子節點
        var lc=s.lastChile; //獲得s的最後一個子節點
}
</script>
複製程式碼

下面介紹JQuery的父,子,兄弟節點查詢方法

複製程式碼
jQuery.parent(expr) 找父親節點,可以傳入expr進行過濾,比如$("span").parent()或者$("span").parent(".class")
jQuery.parents(expr),類似於jQuery.parents(expr),但是是查詢所有祖先元素,不限於父元素
jQuery.children(expr).返回所有子節點,這個方法只會返回直接的孩子節點,不會返回所有的子孫節點
jQuery.contents(),返回下面的所有內容,包括節點和文字。這個方法和children()的區別就在於,包括空白文字,也會被作為一個
jQuery物件返回,children()則只會返回節點
jQuery.prev(),返回上一個兄弟節點,不是所有的兄弟節點
jQuery.prevAll(),返回所有之前的兄弟節點
jQuery.next(),返回下一個兄弟節點,不是所有的兄弟節點
jQuery.nextAll(),返回所有之後的兄弟節點
jQuery.siblings(),返回兄弟姐妹節點,不分前後
jQuery.find(expr),跟jQuery.filter(expr)完全不一樣。jQuery.filter()是從初始的jQuery物件集合中篩選出一部分,而jQuery.find()的返回結果,不會有初始集合中的內容,比如$("p"),find("span"),是從<p>元素開始找<span>,等同於$("p span")
複製程式碼

相關推薦

Javascript JQuery獲取當前元素兄弟元素/一個/一個元素

var chils= s.childNodes; //得到s的全部子節點 var par=s.parentNode; //得到s的父節點 var ns=s.nextSbiling; //獲得s的下一個兄弟節點 var ps=s.previousSbiling; //得到s的上一個兄弟節點 var fc=s

android 獲取當前隱藏和未隱藏wifi的加密方式安全性

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt

讀懂 PetaLinux:讓 Linux 在 Zynq 輕松起“跑”

自己的 化工 鏡像 雲端 vnet idt 流程 驅動 命令行 對於Zynq這樣一個“ARM+可編程邏輯”異構處理系統我們已經不陌生,其創新性大家也有目共睹。不過想要讓更多的應用享受到這一“創新”帶來的紅利,讓其真正“落地”則需要大量系統性的工作,去營造一個完善的生態系統。

SAP ABAP OLE 操作傳的EXCEL模板

ABAP直接操作EXCEL實現資料處理。這裡是用OLE實現操作EXCEL的。現在還有 DOI操作EXCEL等方法。以後用到再做介紹。此處不是直接生成EXCEL檔案,而是從 伺服器已經上傳的EXCEL模板中下載模板然後開啟修改實現資料儲存。也可以直接建立 新的EXCEL

c#——Winform DatagridView顯示拉樹

除了能夠顯示可下拉的樹,提供選擇。 當樹中資料比較多的時候,我們肯定還希望能夠對樹中內容進行查詢,於是擴充套件繼續 首先需要看上一篇部落格 http://blog.csdn.net/Shiyaru1314/article/details/51920494 基於上一篇這裡再

JS/JQuery獲取當前元素一個/一個兄弟元素元素的方法

input logs type ron put 綁定 style wid cti $(function(){ //遍歷獲取的input元素對象數組,綁定click事件 var len = $("input[type=‘file‘]").length;

js jquery獲取當前元素兄弟一個 一個元素 jquery如何獲取第一個或最後一個子元素

pre tool 處理 語法 exp iou 元素 dex syn var chils= s.childNodes; //得到s的全部子節點 var par=s.parentNode; //得到s的父節點 var ns=s.nextSbiling; //獲得s的下

jquery獲取當前元素的值,比如獲取button的值

<html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> <script type="text/javascript"&

jQuery獲取當前元素的其他元素

進行 con 包括 content trac net statistic -m 的區別 jQuery獲取當前元素的其他元素 轉載自:https://blog.csdn.net/weixin_39414369/article/details/811985

jQuery獲取當前元素是該父元素的第幾個元素&獲取元素的第n個子元素

https://blog.csdn.net/mooncom/article/details/78095329 <div class="demo"> <ul> <li>第一個元素</li> <li>

jQuery獲取當前元素是該父元素的第幾個元素&獲取元素的第n個子元素

示例程式碼:<div class="demo"> <ul> <li>第一個元素</li> <li>第

java實現List集合中獲取一個一個元素

public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); lis

怎麽使用jquery判斷一個元素是否含有一個指定的類class

() pla jquer java 例子 add red tro lan 在jQuery中可以使用2種方法來判斷一個元素是否包含一個確定的類(class)。兩種方法有著相同的功能。2種方法如下: 1. is(‘.classname’) 2.

jquery獲取當前頁面的URL信息

顯示 earch protocol tag .proto http jquer 高亮 post 以前在做網站的時候,經常會遇到當前頁的分類高亮顯示,以便讓用戶了解當前處於哪個頁面。之前一直是在每個不同頁面寫方法。工程量大,也不便於修改。一直在想有什麽簡便的方法實現。

jquery獲取當前時間比較日期

ret nds minutes div date ets ace 大於 OS //獲取當前時間,格式 2015-09-05 10:00:00.000 function getnowtime() { var nowtime = new

JavaScript獲取當前頁面的滾動位置

scrollTop要獲取當前頁面的滾動條縱坐標位置,用: document.documentElement.scrollTop; 而不是: document.body.scrollTop; documentElement 對應的是 html 標簽,而 body 對應的是 body 標簽。 documentEl

Map四種獲取key和value值的方法,以及對map中的元素排序

compareto map.entry 排序 區別 sta hashmap 得到 package log 獲取map的值主要有四種方法,這四種方法又分為兩類,一類是調用map.keySet()方法來獲取key和value的值,另一類則是通過map.entrySet()方法來

jquery獲取當前日期

<!DOCTYPE html>   <html lang="zh-CN">  <head>  <meta charset="utf-8">  <

jquery獲取當前日期的前一天

程式碼如下所示,有其他需求,請酌情修改 var default_time = toLongDate(new Date().getTime()-86400000); function toLongDate(m) { var date = new Date(m); return

jquery 獲取當前物件及相關的一些處理問題

demo1: 需求:同時獲取 分類和週期 兩個指標的編碼,傳到後臺。 程式碼: jsp: <div class="choose-tab text-center"> <i class="tips">分類:</i> <span class