那里,
我的帖子按年份排序。默认情况下,它们都是隐藏的(它们获取隐藏元素的.js类)。所以现在它看起来像这样:
<div class="press-wrapper">
<div class="post-entry post-2011 js">...</div>
<div class="post-entry post-2011 js">...</div>
<div class="post-entry post-2010 js">...</div>
<div class="post-entry post-2010 js">...</div>
<div class="post-entry post-2009 js">...</div>
<div class="post-entry post-2009 js">...</div>
<div class="post-entry post-2008 js">...</div>
</div>
我希望documentReady加载所有具有最新日期的项目,因此它应该如下所示:
<div class="press-wrapper">
<div class="post-entry post-2011">...</div>
<div class="post-entry post-2011">...</div>
<div class="post-entry post-2010 js">...</div>
<div class="post-entry post-2010 js">...</div>
<div class="post-entry post-2009 js">...</div>
<div class="post-entry post-2009 js">...</div>
<div class="post-entry post-2008 js">...</div>
</div>
所以我有一个获得第一个帖子类的函数:
var pressClass = $('.press-wrapper div:first').attr('class').split(' ')[1];
当我现在尝试删除“.js”时,没有任何事情发生:
$(pressClass).removeClass('js');
我做错了什么?
答案 0 :(得分:2)
谢谢大家,
最后我提出了:
var pressClass = $('.press-wrapper div:first').attr('class').split(' ')[1];
$("." + pressClass).removeClass('js');
真的很简单。我想要的是获得最新的邮政年度(自动排在最前面),而不仅仅是获得同年的所有其他参赛作品。
那很有效!!!
感谢名单
答案 1 :(得分:1)
您错过了表示课程
的点$("." + pressClass).removeClass('js');
但我不知道你是否每次都能依赖正确的班级名称!
我建议根据年份需要建立基于此类其他内容的字符串:
var year = new Date().getFullYear()
var className = "post-" + year
$("." + className).removeClass('js')
如果你担心这一年不存在,试试这个:
var year = new Date().getFullYear()
for (var i = year; i < year - 10; i--) {
if ($(".post-" + i).length) break;
}
$(".post-" + i).removeClass('js')
答案 2 :(得分:0)
编辑 - 我想我可能误解了这个问题,但无论如何这里有些东西:
<小时/> 您试图将从第一个表达式获得的字符串作为jQuery对象包装起来,这没有用。
实际上,您应该将“class”属性视为向量;依赖类元素的顺序是非常脆弱的,特别是当你使用像jQuery这样的库时。如果要删除“js”类,请将其删除:
$('.press-wrapper div:first').removeClass('js');
如果你只想在元素有一些其他类时删除它,你可以测试它:
var $firstDiv = $('.press-wrapper div:first');
if ($firstDiv.hasClass('post-2010'))
$firstDiv.removeClass('js');
或者根据您的需要做任何事情。
答案 3 :(得分:0)
var pressClass = $('.press-wrapper div:first').attr('class').split(' ')[1];
将为您提供一个字符串'post-2011 . So you prefix it with
.`来创建一个类选择器。试试这个。
$("." + pressClass).removeClass('js');
你不应该依赖类序列。
var pressClass = $('.press-wrapper div:first').attr('class').split(' ');
if(pressClass.lenght > 0){
$.each(pressClass, function(i, class){
if(class.indexOf('post-') != -1){
preseClass = class;
return false;
}
}
}
然后使用pressClass
并删除课程
$("." + pressClass).removeClass('js');
答案 4 :(得分:0)
selector 是错误的。
$('.press-wrapper div:first').removeClass('js');
答案 5 :(得分:0)
var pressClass = $('.press-wrapper div:first');
$(pressClass).removeClass('js');
取出您已经知道要移除的内容的attr。只需定义要从中删除的div。
答案 6 :(得分:0)
$('.post-entry:first-child').removeClass('js');