如何隐藏第三段到最后一段? 到目前为止,我设法隐藏了第一个:
<p>A</p>
<p>B</p>
<p>C</p>
<p>D</p>
<p>E</p>
<script>
document.getElementsByTagName("p")[2].style.display="none";
</script>
答案 0 :(得分:3)
用jQuery标记:
$('p:gt(1)').hide();
:gt =选择匹配集中索引大于索引的所有元素(基于零)
答案 1 :(得分:1)
我的第一个想法是直接使用CSS:
p:nth-child(n + 3) {
display: none;
}
或使用纯JavaScript:
var pElems = document.getElementsByTagName('p');
for (var i = 2, len = pElems.length; i < len; i++) {
pElems[i].style.display = 'none';
}
当然,只是因为它是可能的(是的,你可以这样做,但这并不意味着你应该),我们也可以扩展{{ 1}}原型,并使用Array
和slice
:
call
编辑以回答问题,留在评论(下方),由OP:
什么是最短的[JavaScript]才能隐藏最后一个
Array.prototype.css = function (prop,val) { var self = this; for (var i = 0, len = self.length; i < len; i++) { self[i].style[prop] = val; } return self; }; [].slice.call(document.getElementsByTagName('p'), 2).css('display','none');
?
我不经常参加'最短'的比赛(代码高尔夫,尽管技术往往令人印象深刻);但是最简单的方法在评论中写成:
<p>
我最初建议使用var pArray = document.getElementsByTagName("p");
pArray[pArray.length-1].style.display="none";
(忘记pop()
没有NodeList
方法)因此,进一步推广上述原型扩展方法(并避免重新创建{ {1}},主要是因为pop()
似乎在以后的情况下更有用:
pop()
参考文献: