0

内容可编辑的 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>

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

像(在循环中):

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

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

2 回答 2

1

如果“我怎么知道……”你的意思是“在 JavaScript 中,我怎么会……”

MooTools 让它变得简单:

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

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

也会有一个简单的 jQuery 等价物。

如果您使用的是本机 JS,则会遇到问题,因为 IE<9 中没有对“getElemntByClassName”的本机支持。有很多框架和工具可以弥合这些浏览器的差距,例如 MooTools、JQuery、Prototype 等,但是如果您需要原生并知道特定容器中带有 .cond 类的 span 的索引位置,您可以尝试:

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

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

如果这是您想要解决的唯一问题,那么 2008 年的“getElementsByClassName”解决方案仍然可以很好地工作,即 Robert Nyman 的 IE<9 - http://robertnyman.com/2008/05/27/the-ultimate- getelementsbyclassname-anno-2008/

于 2013-09-23T02:35:18.590 回答
0

你的意思是这样的吗?

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

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

添加了 console.logs 以在小提琴中更清楚地说明这一点。

希望这可以帮助。

于 2013-09-23T02:20:41.060 回答