JavaScript中如何通过一个元素去查找该元素的子元素节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript中如何通过一个元素去查找该元素的子元素节点相关的知识,希望对你有一定的参考价值。

<ul>
<li><a href="fireworks.jpg"><img src="fireworks.jpg" title="a fireworks display" /></a></li>
<li><a href="coffee.jpg"><img src="coffee.jpg" title="a cup of black coffee" /></a></li>
<li><a href="rose.jpg"><img src="rose.jpg" title="A red,red rose" /></a></li>
<li><a href="bigben.jpg"><img src="bigben.jpg" title="The famous clock" /></a></li>
</ul>
这是一段html代码,我们看到<li>中的<a>元素节点去查找一下个<img>元素节点,我查了好像只能通过childNodes数组属性去查找,但是找到的是该元素节点子节点的属性节点和文本节点,并不能找到下一个元素节点。而且通过parentNode属性可以查找元素节点。
哪位javascript和DOM高手解决我的问题啊,不要告诉我设置ID后通过getElementById来访问。谢谢啦!希望能和JavaScript的高手多交流交流啊!O(∩_∩)O~

<div id="test">
<div></div>
<div></div>
</div>
<script>
function dom()
var s= document.getElementById("test");
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>
参考技术A 不管你用什么方法,先定位到li或者a节点
然后用getElementsByTagName("IMG")[0]
这个就是你的img节点了
参考技术B function get_nextSibling(n)

y=n.nextSibling;
while (y.nodeType != 1)

y=y.nextSibling;

return y;
本回答被提问者采纳
参考技术C function get_nextSibling(n)
y=n.nextSibling;
while (y.nodeType != 1)
y=y.nextSibling;

return y;
参考技术D getElementsByTagName

返回一个数组

JavaScript中数组元素的线性搜索

线性搜索:将给定的数组元素一个接一个的与我们需要查找的元素进行比较。

示例:1、该示例通过prompt()函数实现用于输入需要查找的元素。

   2、给定一组数组元素

   3、将查询结果通过set_innerHTML()函数输出到指定页面标签内。

(注:set_innerHTML()函数弥补JavaScript的innerHTML属性,JavaScript的innerHTML属性不能进行网页交互时输出。即网页交互时使用innerHTML属性JavaScript程序无响应。)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="file:///E|/dreamweaver workspace/html/innerHTML/innerHTML.js"></script>
<title>数组元素的线性查找</title>
<script>
  var numbles = new Array(1,2,3,4,5,6,7,8,9,45,15,41,78,261,35,10);
  var index = 0;var flag = 0;
  var input = prompt("请您输入想查找的数:","eg:25");

  while(flag == 0 ){
    if(input == numbles[index]){
      flag = 1;
    }else{
      index= index+1;
      if(index >= numbles.length){
        flag = 2;
      }else{;
        };
    };

  };
  /*使用innerHTML获得的js代码是不能被执行的,js只有在页面初次加载的时候才有效。JavaScript的innerHTML不能进行交互吗?*/
  if(flag == 1){
  //document.getElementById("result").innerHTML = ("您需要寻找的数:" + input + "已找到,且存在目标数组中的索引号为:" + index)
  set_innerHTML("result",("您需要寻找的数:" + input + "已找到,且存在目标数组中的索引号为:" + index));
  }else{
  // document.getElementById("result").innerHTML = ("不好意思!您寻找的数:" + input + "不存在");
  set_innerHTML("result",("不好意思!您寻找的数:" + input + "不存在"));
  }
</script>
</head>
<body>
<p><span id="result"></span></p>
</body>
</html>

 

以上是关于JavaScript中如何通过一个元素去查找该元素的子元素节点的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript HTML DOM

JavaScript中数组元素的线性搜索

如何使用 Javascript“查找”由 Angular 组件提供的元素?

Selenium c#如何通过JavaScript查找元素?

JavaScript 学习-27.查找HTML DOM节点(元素)

php如何查找数组中是不是含有某个元素?