1)如何提高此代码的效率?第一行是我如何“选择”元素,第二行是 准备“选择”,下一个或上一个元素
jQuery('code:lt('+((aktywneZdanie+1).toString())+'):gt('+((aktywneZdanie-1).toString())+')').removeClass('class2');}
aktywneZdanie=aktywneZdanie-1
2)我无法创建一个作为方法工作的函数。我的意思是如何改变:
jQuery('#something').addClass('class1')
.removeClass('class2');
这样的事情:
jQuery('#something').changeClasses();
function changeClasses(){
.addclass('class1');
.removeClass('class2');}
答案 0 :(得分:0)
对于第一个,你为什么需要这样的选择器?难道你找不到一些不太具体的钩子?如果在加入数字和字符串时必须保留它,JavaScript会在幕后将数字转换为字符串,这样你就不需要.toString()并且可以在选择器之外执行“maths”+/- 1使其更具可读性。
修改强> 关于你的评论我不太清楚你的意思,你可以为“post”项目分配一个类,然后将唯一的id添加到数据属性ID。为了简化你可以做这样的事情:
var codeLt = aktywneZdanie + 1,
codeGt = aktywneZdanie - 1;
$('code:lt(' + codeLt + '):gt(' + codeGt +')').removeClass('class2');
结束修改 第二个解决方案应该可行,你所做的就是将你的选择器中的dom元素传递给一个jQuery“数组”函数,在其中操作你的需求
对于你的第二个问题,为什么不只是打开和关闭课程?有一个反映第一类的默认状态?
jQuery('#something').toggleClass('uberClass');
或者您可以将选择器传递给函数
changeClasses(jQuery('#something'));
然后在你内部对返回元素进行操作。
修改强> 你的代码应该可以正常工作,但是id建议检查以确保你有一个元素可以工作:
changeClasses(jQuery('#something'));
function changeClasses($element){
if($element.length > 0) {
$element.addClass('class1');
}
}
结束修改
希望它有所帮助,
答案 1 :(得分:0)
1)如何提高此代码的效率?第一行是如何“选择”元素,第二行是如何准备“选择”,下一个或上一个元素。
jQuery('code:lt('+((aktywneZdanie+1).toString())+'):gt('+((aktywneZdanie-1).toString())+')').removeClass('class2');}
aktywneZdanie = aktywneZdanie-1
我停止创建这个如上所述的这个奇怪的代码,而不是我开始使用.slice()(不要忘记在这里使用.index()),。。prev(),。next()。只有这三个,一切都更快,更清晰。下面就是一个例子。不,它没有做任何合乎逻辑的事情。
var activeElem = jQuery('code:first');
var old Elem;
jQuery('code').slice('0',activeElem.index()).addClass('class1');
oldElem=activeElem;
activeElem=activeElem.next();
jQuery('code').slice(oldElem.index(),activeElem.index()).addClass('class1');
oldElem.toggleClass('class1');
activeElem.prev().toggleClass('class1');
和第二部分
2)我无法创建一个作为方法工作的函数。我的意思是如何改变:
jQuery('#something').addClass('class1')
.removeClass('class2');
这样的事情:
jQuery('#something').changeClasses();
function changeClasses(){
.addclass('class1');
.removeClass('class2');}
我还没有解决这个问题。