使用javascript将样式应用于具有class:container的div中的最后一个元素(class:column)
我有以下代码:使用javascript将样式应用于具有class:container的div中的最后一个元素(class:column),javascript,Javascript,我有以下代码: <div class="container"> <div class="four column">some text</div> <div class="eight column">some text</div> </div> <div class="container"> <div class="six column">some text</div> <di
<div class="container">
<div class="four column">some text</div>
<div class="eight column">some text</div>
</div>
<div class="container">
<div class="six column">some text</div>
<div class="six column">some text</div>
</div>
<div class="container">
<div class="twelve column">some text</div>
</div>
一些文本
一些文本
一些文本
一些文本
一些文本
现在,我想为每个具有类“container”的div中的最后一个div(类:'column')添加样式我必须使用javascript来完成它。没有jquery。因此,代码变为:
<div class="container">
<div class="four column">some text</div>
<div class="eight column" style='margin-right:0px;'>some text</div>
</div>
<div class="container">
<div class="six column">some text</div>
<div class="six column" style='margin-right:0px;>some text</div>
</div>
<div class="container">
<div class="twelve column" style='margin-right:0px;>some text</div>
</div>
一些文本
一些文本
一些文本
一些文本
您可以使用以下功能:
document.getElementsByClassName("container").lastElementChild.style.marginRight = "0px";
您可以使用以下选项:
document.getElementsByClassName("container").lastElementChild.style.marginRight = "0px";
您可以尝试以下方法:
var containerDivs = document.querySelectorAll('.container');
for (var i=0, iLen=containerDivs.length; i<iLen; i++) {
var columnElements = containerDivs[i].querySelectorAll('.column');
var last = columnElements[columnElements.length - 1];
}
甚至可以通过以下方式完全删除循环:
var lastColumns = document.querySelectorAll('.container > .column:last-of-type');
您可以使用纯CSS:
.container > .column:last-of-type {
margin-right:0px;
}
但IE8也不支持这一点。您可以使用循环和一个函数在缺少getElementsByClassName的浏览器中完成getElementsByClassName的工作。您可以尝试以下操作:
var containerDivs = document.querySelectorAll('.container');
for (var i=0, iLen=containerDivs.length; i<iLen; i++) {
var columnElements = containerDivs[i].querySelectorAll('.column');
var last = columnElements[columnElements.length - 1];
}
甚至可以通过以下方式完全删除循环:
var lastColumns = document.querySelectorAll('.container > .column:last-of-type');
您可以使用纯CSS:
.container > .column:last-of-type {
margin-right:0px;
}
但IE8也不支持这一点。您可以使用循环和一个函数在缺少getElementsByClassName的浏览器中完成getElementsByClassName的工作。javascript代码在哪里?此外,您也可以完全用css来实现。根本不需要javascript你的javascript代码在哪里?此外,您也可以完全用css来实现。根本不需要javascript,lastElementChild is和(IE 8也不支持)返回一个集合。lastElementChild is和(IE 8也不支持)返回一个集合。但我希望所有浏览器都支持它。请提供帮助,但我希望所有浏览器都支持它。请帮忙