我有一个html示例块:
<div class="container">
<div class="item first">...</div>
<div class="item second">...</div>
<div class="item third">...</div>
<div class="item fourth">...</div>
</div>
我想要浏览块并获取每个项目的当前类以及下一个项目的类,这是我正在尝试但this.nextSibling.className
总是undefined
:
$(".container > .item").each(function(){
var context = $(this);
context.text("this is " + this.className + ' next one is ' + this.nextSibling.className);
});
我该怎么做?
答案 0 :(得分:2)
下一个兄弟是白色空间填充的文本节点在 div之间,而不是下一个div。
改为使用nextElementSibling
或jQuery的next
。
答案 1 :(得分:1)
您可以使用点击的元素上下文和jquery .next()
来定位每次迭代中的下一个元素:
$(".container > .item").each(function(){
var context = $(this);
context.text("this is " + $(this).attr('class') + ' next one is ' + $(this).next().attr('class'));
});
答案 2 :(得分:1)
这是因为代码中的nextSibling
是textNode
,但没有className
属性。您应该使用nextElementSibling
或jQuery next
方法。
this.nextElementSibling.className;
context.next().prop('className');
答案 3 :(得分:0)
您可以使用next()函数: 这是fiddle
$(".container > .item").each(function(){
var context = $(this);
context.text("this is " + this.className + ' next one is ' + context.next().attr('class'));
});
答案 4 :(得分:0)
这是您的代码
$(".container > .item").each(function(){
var context = $(this);
var nextClassName = $(this).next().attr('class');
context.text("this is '" + this.className + "' next one is '" + nextClassName +"'");
});
更新了JS小提琴http://jsfiddle.net/1y6do3bk/4/
答案 5 :(得分:0)
试试这个:
$(".container > .item").each(function(){
var context = $(this);
context.text("this is '" + this.className + "' next one is '" + context.next().attr('class') +"'");
});
最后一个仍然是'未定义',但这是预期的......