JavaScript contains()

admin發表於2019-11-04

此方法判斷指定節點是否是當前節點的後代。

如果是,此方法返回true,否則返回false。

contains()方法具有一些特別之處,後面會通過程式碼例項演示。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
let result = node.contains(otherNode)

引數解析:

(1).otherNode:節點物件,判斷它是否被node節點包含。

瀏覽器支援:

(1).IE9+瀏覽器支援此方法。

(2).edge瀏覽器支援此方法。

(3).谷歌瀏覽器支援此方法。

(4).opera瀏覽器支援此方法。

(5).火狐瀏覽器支援此方法。

(6).safria瀏覽器支援此方法。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
#box{
  width:200px;
  height:150px;
  background-color:#ccc;
}
#middle{
  width:150px;
  height:100px;
  background-color:blue;
}
#inner{
  width:100px;
  height:50px;
  background-color:red;
  text-align: center;
  line-height: 50px;
}
</style>
<script>
window.onload = () => {
   let obox=document.getElementById("box");
   let omiddle=document.getElementById("middle");
   let oinner=document.getElementById("inner");
   oinner.innerHTML=obox.contains(oinner);
}
</script>
</head>
<body>
<div id="box">
  <div id="middle">
    <div id="inner"></div>
  </div>
</div>
</body>
</html>

inner很明顯是box的後代,所以contains()方法的返回值為true。

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201911/04/174639gkvvn09gdvz3a1re.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

再來看一段程式碼例項:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
#box{
  width:200px;
  height:50px;
  background-color:#ccc;
}
</style>
<script>
window.onload = () => {
   let obox=document.getElementById("box");
   let oshow=document.getElementById("show");
   let otxt=obox.firstChild;
   oshow.innerHTML=obox.contains(otxt);
}
</script>
</head>
<body>
<div id="box">螞蟻部落</div>
<span id="show"></span>
</body>
</html>

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201911/04/174702f3p3sei75e31ir21.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

很多朋友第一感覺就是,後代節點是元素節點。

事實並非如此,上述程式碼中,div元素中是一個文字節點。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
#box{
  width:200px;
  height:50px;
  background-color:#ccc;
}
</style>
<script>
window.onload = () => {
   let obox=document.getElementById("box");
   let oshow=document.getElementById("show");
   oshow.innerHTML=obox.contains(obox);
}
</script>
</head>
<body>
<div id="box">螞蟻部落</div>
<span id="show"></span>
</body>
</html>

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201911/04/174729ov7vwav06j3zrtt6.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述程式碼中,方法的引數是當前節點自身。

返回值同樣是true,可見此方法確實是比較博愛的。

相關文章