使 getElementsByClassName 在同名的 2 类 之间不同
Make getElementsByClassName differ between 2 classes with the same name
我得到一个 HTML 页面,其中有两个 div/class 元素同名,名为 "notifications"。不过,我只想算后面的,不想算第一个。
第一个看起来像这样:
<a href="mynotifcations"><div class="notification">1</div>
应该排除这个。
后面的是这样的:
<div class="notiheader"><span class="notification">2 notifications</span>
现在我收到这样的通知
document.getElementsByClassName("notification");
如果我循环浏览它,它会 returns“1”,然后是“2 个通知”。
我宁愿只收到“2 条通知”,或者最好只收到整数 2。
我如何设法做到这一点?我真的 运行 没主意了:/
最好加一个class来区分它们(这就是它们的作用),但如果必须,你可以使用document.querySelectorAll()
来匹配你想要的特定的寻找:
document.querySelectorAll("div .notification")
这只会匹配 div
与 notification
class。
var elementsWanted = document.querySelectorAll("div .notification");
for(var i = 0; i < elementsWanted.length; i++){
elementsWanted[i].style.backgroundColor = "yellow";
}
<div class="notification">Span</div>
<div class="notiheader"><span class="notification">Div</span>
<div class="notiheader"><span class="notification">Div</span>
<div class="notiheader"><span class="notification">Div</span>
<div class="notiheader"><span class="notification">Div</span>
我不得不说这是一个奇怪的设置,但这里有一个方法:
<script>
var special = document.querySelectorAll( "span.notification" );
alert (special[1].innerHTML);
</script>
试试这个,这里我们先得到所有的notification
类,x.length
给出notification
类的总数[=16] =].然后根据它的索引(基于零的索引)做你的事情。
function hookSecondNotification() {
var x = document.getElementsByClassName("notification")[1];
// x.style.backgroundColor = "red";
// here do your stuffs.
}
我得到一个 HTML 页面,其中有两个 div/class 元素同名,名为 "notifications"。不过,我只想算后面的,不想算第一个。
第一个看起来像这样:
<a href="mynotifcations"><div class="notification">1</div>
应该排除这个。
后面的是这样的:
<div class="notiheader"><span class="notification">2 notifications</span>
现在我收到这样的通知
document.getElementsByClassName("notification");
如果我循环浏览它,它会 returns“1”,然后是“2 个通知”。
我宁愿只收到“2 条通知”,或者最好只收到整数 2。
我如何设法做到这一点?我真的 运行 没主意了:/
最好加一个class来区分它们(这就是它们的作用),但如果必须,你可以使用document.querySelectorAll()
来匹配你想要的特定的寻找:
document.querySelectorAll("div .notification")
这只会匹配 div
与 notification
class。
var elementsWanted = document.querySelectorAll("div .notification");
for(var i = 0; i < elementsWanted.length; i++){
elementsWanted[i].style.backgroundColor = "yellow";
}
<div class="notification">Span</div>
<div class="notiheader"><span class="notification">Div</span>
<div class="notiheader"><span class="notification">Div</span>
<div class="notiheader"><span class="notification">Div</span>
<div class="notiheader"><span class="notification">Div</span>
我不得不说这是一个奇怪的设置,但这里有一个方法:
<script>
var special = document.querySelectorAll( "span.notification" );
alert (special[1].innerHTML);
</script>
试试这个,这里我们先得到所有的notification
类,x.length
给出notification
类的总数[=16] =].然后根据它的索引(基于零的索引)做你的事情。
function hookSecondNotification() {
var x = document.getElementsByClassName("notification")[1];
// x.style.backgroundColor = "red";
// here do your stuffs.
}