jQuery问题:我如何清理这些代码以使其更有效,或者是否有一种方法来循环这些代码?
这是我的代码,它一直重复到:eq(15)。一般来说,我对jQuery和JavaScript都是新手,我怀疑自己做得是否正确。有人能帮我把代码整理成一个循环吗?我基本上需要这个脚本将:eq(0)增加1到15jQuery问题:我如何清理这些代码以使其更有效,或者是否有一种方法来循环这些代码?,jquery,loops,digit,Jquery,Loops,Digit,这是我的代码,它一直重复到:eq(15)。一般来说,我对jQuery和JavaScript都是新手,我怀疑自己做得是否正确。有人能帮我把代码整理成一个循环吗?我基本上需要这个脚本将:eq(0)增加1到15 var $titleMarquee = '<marquee scrollamount="5" direction="left" width="233" align="left" behavior="alternate" loop="1"><span>'; $("ul.
var $titleMarquee = '<marquee scrollamount="5" direction="left" width="233" align="left" behavior="alternate" loop="1"><span>';
$("ul.side-block-content li:eq(0)").mouseenter(function(){$('ul.side-block-content li:eq(0) .article-title a span').replaceWith($titleMarquee+$('ul.side-block-content li:eq(0) .article-title a').text()+'</span></marquee>');});
$("ul.side-block-content li:eq(0)").mouseleave(function(){$('ul.side-block-content li:eq(0) .article-title a marquee').replaceWith('<span>'+$('ul.side-block-content li:eq(0) .article-title a').text()+'</span>');});
$("ul.side-block-content li:eq(1)").mouseenter(function(){$('ul.side-block-content li:eq(1) .article-title a span').replaceWith($titleMarquee+$('ul.side-block-content li:eq(1) .article-title a').text()+'</span></marquee>');});
$("ul.side-block-content li:eq(1)").mouseleave(function(){$('ul.side-block-content li:eq(1) .article-title a marquee').replaceWith('<span>'+$('ul.side-block-content li:eq(1) .article-title a').text()+'</span>');});
$("ul.side-block-content li:eq(2)").mouseenter(function(){$('ul.side-block-content li:eq(2) .article-title a span').replaceWith($titleMarquee+$('ul.side-block-content li:eq(2) .article-title a').text()+'</span></marquee>');});
$("ul.side-block-content li:eq(2)").mouseleave(function(){$('ul.side-block-content li:eq(2) .article-title a marquee').replaceWith('<span>'+$('ul.side-block-content li:eq(2) .article-title a').text()+'</span>');});
$("ul.side-block-content li:eq(3)").mouseenter(function(){$('ul.side-block-content li:eq(3) .article-title a span').replaceWith($titleMarquee+$('ul.side-block-content li:eq(3) .article-title a').text()+'</span></marquee>');});
$("ul.side-block-content li:eq(3)").mouseleave(function(){$('ul.side-block-content li:eq(3) .article-title a marquee').replaceWith('<span>'+$('ul.side-block-content li:eq(3) .article-title a').text()+'</span>');});
$("ul.side-block-content li:eq(4)").mouseenter(function(){$('ul.side-block-content li:eq(4) .article-title a span').replaceWith($titleMarquee+$('ul.side-block-content li:eq(4) .article-title a').text()+'</span></marquee>');});
$("ul.side-block-content li:eq(4)").mouseleave(function(){$('ul.side-block-content li:eq(4) .article-title a marquee').replaceWith('<span>'+$('ul.side-block-content li:eq(4) .article-title a').text()+'</span>');});
$("ul.side-block-content li:eq(5)").mouseenter(function(){$('ul.side-block-content li:eq(5) .article-title a span').replaceWith($titleMarquee+$('ul.side-block-content li:eq(5) .article-title a').text()+'</span></marquee>');});
$("ul.side-block-content li:eq(5)").mouseleave(function(){$('ul.side-block-content li:eq(5) .article-title a marquee').replaceWith('<span>'+$('ul.side-block-content li:eq(5) .article-title a').text()+'</span>');});
var$titleMarquee='';
$(“ul.side-block-content li:eq(0)”).mouseenter(function(){$('ul.side-block-content li:eq(0).文章标题a span')。替换为($titleMarquee++$('ul.side-block-content li:eq(0).文章标题a')。text()+“”;});
$(“ul.side-block-content li:eq(0)”).mouseleave(function(){$('ul.side-block-content li:eq(0).文章标题a选框')。替换为('+$('ul.side-block-content li:eq(0).文章标题a')。text()+';});
$(“ul.side-block-content li:eq(1)”).mouseenter(function(){$('ul.side-block-content li:eq(1).文章标题a span')。替换为($titleMarquee++$('ul.side-block-content li:eq(1).文章标题a')。text()+“”;});
$(“ul.side-block-content li:eq(1)”).mouseleave(function(){$('ul.side-block-content li:eq(1).文章标题a选框')。替换为('+$('ul.side-block-content li:eq(1).文章标题a')。text()+';});
$(“ul.side-block-content li:eq(2)”).mouseenter(function(){$('ul.side-block-content li:eq(2).文章标题a span')。替换为($titleMarquee++$('ul.side-block-content li:eq(2).文章标题a')。text()+“”;});
$(“ul.side-block-content li:eq(2)”).mouseleave(function(){$('ul.side-block-content li:eq(2).文章标题a选框')。替换为('+$('ul.side-block-content li:eq(2).文章标题a')。text()+';});
$(“ul.side-block-content li:eq(3)”).mouseenter(function(){$('ul.side-block-content li:eq(3).文章标题a span')。替换为($titleMarquee++$('ul.side-block-content li:eq(3).文章标题a')。text()+“”;});
$(“ul.side-block-content li:eq(3)”).mouseleave(function(){$('ul.side-block-content li:eq(3).文章标题a选框')。替换为('+$('ul.side-block-content li:eq(3).文章标题a')。text()+';});
$(“ul.side-block-content li:eq(4)”).mouseenter(function(){$('ul.side-block-content li:eq(4).文章标题a span')。替换为($titleMarquee++$('ul.side-block-content li:eq(4).文章标题a')。text()+“”;});
$(“ul.side-block-content li:eq(4)”).mouseleave(function(){$('ul.side-block-content li:eq(4).文章标题a选框')。替换为('+$('ul.side-block-content li:eq(4).文章标题a')。text()+';});
$(“ul.side-block-content li:eq(5)”).mouseenter(function(){$('ul.side-block-content li:eq(5).文章标题a span')。替换为($titleMarquee++$('ul.side-block-content li:eq(5).文章标题a')。text()+“”;});
$(“ul.side-block-content li:eq(5)”).mouseleave(function(){$(“ul.side-block-content li:eq(5).文章标题a字幕”).replace为(“+$”(“ul.side-block-content li:eq(5).文章标题a”).text()+”;);
提前感谢。
for(i=1;i看起来所有这些语句都对不同的列表项执行相同的操作。假设这是正确的,您可以执行以下操作:
for (i = 1; i <= 15; i++) {
$("ul.side-block-content li:eq(" + i + ")").mouseenter(function() {
var $this = $(this);
$this.filter('.article-title a span').replaceWith(
$titleMarquee + $this.filter('.article-title a').text() + '</span></marquee>');
}).mouseleave(function() {
var $this = $(this)
$this.filter('.article-title a marquee').replaceWith('<span>' + $this.filter('.article-title a').text() + '</span>');
});
}
$("ul.side-block-content li").hover(
function(){
var link = $(this).find(".article-title a"),
span = link.find("span");
span.replacewith($titleMarquee + link.text() + '</span></marquee>');
},
function(){
var link = $(this).find(".article-title a"),
marquee = link.find("marquee");
marquee.replaceWith('<span>' + link.text() + '</span>');
}
);
$(“ul.side-block-content li”)。悬停(
函数(){
var link=$(this.find(“.article title a”),
span=link.find(“span”);
替换为($titleMarquee+link.text()+“”);
},
函数(){
var link=$(this.find(“.article title a”),
marquee=link.find(“marquee”);
marquee.replaceWith(“”+link.text()+“”);
}
);
hover
是将函数连接到mouseenter
和mouseleave
的快捷方式。在每个函数中,这个
将引用li
元素本身,因此如果我们将其包装在jQuery对象中,我们可以使用find
来查找其子体。看起来您主要使用的是链接的内容,因此代码会找到该链接,然后找到span
(在mouseenter
)或marquee
(在mouseleave
)并将其替换为包含链接文本的marquee
或span
$('ul.side-block-content').delegate('li', 'mouseleave', function() {
$a = $(this).find('.article-title a');
$a.filter('span:first').replaceWith($titleMarquee + $a.text()
+ '</span></marquee>');
});
$('ul.side block content')。委托('li','mouseleave',函数(){
$a=$(this.find('.article title a');
$a.filter('span:first').replaceWith($titleMarquee+$a.text())
+ '');
});
你能提供一些HTML来使用吗?
先生,你真是个魔鬼。我很久以前就认为有人不赞成使用它了。@Krule:我认为字幕
从来没有出现在任何实际的规范中。它没有出现在HTML或规范中(显然也没有出现在HTML5中)。真的吗?!所有这些伟大的答案都没有被接受吗?“顺便说一句,过些时候我会把全部代码都发出去"嗯,好的。所以基本上你只是想确定你已经得到了第一个答案?因为你遗漏的是回答这个问题的核心。这真的很快,谢谢!$titleMarquee是这样的:$var$titleMarquee='';我应该用什么东西替换$this吗?或者像写的那样使用它,因为它似乎不起作用。@inuendo:you我真的不想创建一个名为“$this
”的全局变量,是吗?我让它工作了!谢谢所有回答我问题的人。@t.J.Crowder:我通常都会创建$this变量。但是,是的,在这个例子中,最好像你在回答中那样创建变量