在class =“cond”下检测父项的最后一个子项

时间:2013-09-23 02:16:47

标签: javascript

contenteditable div

((grade >= passingMark) && (grade<101))

HTML

<span class="cond frag">(<span class="cond frag">(grade >= passingMark)</span> && <span class="cond frag">(grade<101)</span>)</span>

我怎么知道我是康儿的最后一个孩子还是没有跟随我的下一个兄弟(grade<101)

像(循环中):

$elem = $('.frag').eq(fragNum);

if ($elem.nextAll('.cond').length === 0 ) {
    alert('last child detected');
}

2 个答案:

答案 0 :(得分:1)

如果通过&#34;我怎么知道......&#34;你的意思是&#34;在JavaScript中,我怎么能得到......&#34;

MooTools让它变得简单:

var last = document.getElement('.cond').getLast('span');

在这种情况下,document.getElement将获取与文档中的.cond匹配的第一个元素。

也会有一个简单的jQuery等效。

如果您使用的是本机JS,则会遇到问题,因为没有本地支持&#34; getElemntByClassName&#34;在IE&lt; 9中。有许多框架和工具可以弥补这些浏览器差距,如MooTools,JQuery,Prototype等,但是如果你需要本机并且知道特定容器中带有class .cond的span的索引位置,你可以试试:

var conds = document.getElementsByTagName("span")[0].getElementsByTagName("span");
var last = conds[conds.length-1];

其中document是您的特定容器,0是位置(容器中的第一个)。

如果这是你想要解决的唯一问题,那就是2008&#34; getElementsByClassName&#34;仍然有效的解决方案是IE&lt; 9 by Robert Nyman - http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/

答案 1 :(得分:0)

你的意思是这样吗?

http://jsfiddle.net/KyleMuir/nujr7/1/

var elements = document.getElementsByClassName('cond');
var totalElements = elements.length;
var lastElement = elements[totalElements -1];

添加了console.logs,以便在小提琴中更加清晰。

希望这有帮助。