如何选择具有特定类的最后加载的标记。(不是:last)

时间:2013-09-17 17:31:21

标签: javascript jquery

让我们从一个例子开始:

<p class="paragraph"> some text </p>
<script> here must be the script that adds class to the above p </script>
<p class="paragraph"> some other text </p>
<script> here must be the script that adds class to the above p </script>
...

我想在“脚本”之前的“p”中添加一个类。脚本标记也可以在段落内,但它不应该在之前。我希望现在很清楚,但如果不清楚,我很乐意向您提供有关我的问题的进一步信息。提前谢谢。

3 个答案:

答案 0 :(得分:1)

脚本不知道它与页面流的关系。您可以做的最好的事情是选择您要查找的所有标签,然后选择最后一个标签。


JavaScript的:

var elems = document.getElementsByClassName("paragraph");
console.log(elems[elems.length-1])

jQuery的:

$(".paragraph").last().addClass("foo");

答案 1 :(得分:0)

使用getElementsByTagName并获取返回列表的长度,它将是最后加载的标记的索引。例如:

<p class="paragraph"> some text </p>
<script> here must be the script that adds class to the above p </script>
<p class="paragraph"> some other text </p>

    function getLastTag(){
    var list=document.getElementsByTagName('p');
    list[list.length-1].className='your class name';
    }

答案 2 :(得分:0)

您可以一次选择所有段落并添加所需的课程,例如使用数据属性:

你的HTML:

<p class="paragraph" data-class="foo">Some text</p>
<p class="paragraph" data-class="bar">Some other text</p>

您的部分脚本(假设您在加载时使用jQuery)

$('p.paragraph').each(function () {    
  $(this).addClass($(this).data('class'));
});