如何在javascript中获取后代
How to get descendents in javascript
我想得到的每个人在div下获取所有带有类"a1"的p元素,类为"oshow",该元素再次在类"pro_line"下,而无需在javascipt中使用getelementsbyclassname。
<div id="Zi03">
<div class="ye">text</div>
<div class="yee">text</div>
<div class="pro-line">
<div class="oshow">
<div class="compic"><a href="#"></a></div>
<p class="a1"><a href="poduct"></a></p>
<p class="a2"><a href="poduct"></a></p>
<div class="a3"><a href="poduct"></a></div>
</div>
<div class="oshow">
<div class="compic"><a href="#"></a></div>
<p class="a1"><a href="poduct"></a></p>
<p class="a2"><a href="poduct"></a></p>
<div class="a3"><a href="poduct"></a></div>
</div>
<div class="oshow">
<div class="compic"><a href="#"></a></div>
<p class="a1"><a href="poduct"></a></p>
<p class="a2"><a href="poduct"></a></p>
<div class="a3"><a href="poduct"></a></div>
</div> ...
....
....
</div>
</div>
请有人帮助我如何在不使用 getelementsbyclassname 的情况下在 javascript 中获取它,但我可以通过 ID 使用它
提前非常感谢...
您可以使用以下替换getElementsByClassName()
现代浏览器:
function getElementsByClassName(node, classname) {
/// <summary>
/// Replaces built-in function of modern browser. Implemented because not supported by IE7/8
/// </summary>
/// <param name="node">DOM element withing which search is done</param>
/// <param name="classname">String with class name for search</param>
/// <returns type="">Array of found elements</returns>
var a = [];
var re = new RegExp('(^| )' + classname + '( |$)');
var els = node.getElementsByTagName("*");
for (var i = 0, j = els.length; i < j; i++)
if (re.test(els[i].className)) a.push(els[i]);
return a;
}
用这样的话来调用它:
var aElems = getElementsByClassName(document.getElementById('Zi03'),'pro-line')
var elem = document.getElementById('Zi03');
var proline = elem.children[2];
For loop for all immediate childs of proline
var oshow= proline.firstElementChild;
var a1 = show.children[1]
//display a1 Or whatever you want
End
如果 a1 和其他元素位于同一层次结构级别,则此方法有效
这是一个让你入门的版本,它并不完美,但你可以改进它
var nodes = [];
var allChildNodes = document.getElementById('Zi03').getElementsByTagName('*');
for (var i = 0; i < allChildNodes.length); i++ ) {
var isA1 = ;
var isUnderProline = allChildNodes[i].parentNode.className == 'pro-line';
var isUnderOShow = allChildNodes[i].parentNode.parentNode.className == 'oshow';
if (
allChildNodes[i].className == 'a1' &&
allChildNodes[i].parentNode.className == 'pro-line' &&
allChildNodes[i].parentNode.parentNode.className == 'oshow'
){
nodes.push(allChildNodes[i]);
}
}
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 在jQuery中获取表的行索引
- 使用jquery将mysql数据获取到新的表行中
- 在动态创建的元素上获取对特定选择器的引用
- 从城市名称获取惊喜
- Angular只从数组中获取所需的数据
- 无法将数据从firebase获取到我的html页面
- 从ajax请求中获取javascript对象
- 如何从画布上的某个移动事件中获取X和Y
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何使用jQuery获取后代span元素
- 获取包含所有后代的纯文本形式的元素内容
- 选择器:仅获取特定级别的后代的最快方法
- 如何在javascript中获取后代
- jQuery获取所有后代节点,包括文本节点