我有一些工作的JQuery代码,但我一直在尝试将代码压缩为每个循环的代码。如你所见,我有一个第四个LI的场景,但理想情况下我想要一个循环,所以它只是自动保持LI计数。我尝试了几种方法,但到目前为止还没有成功。这是我的工作代码:
$(document).ready(function($) {
//adds link around entire content inside of li
//li #1
var a = $('h2 a', '.slides li:first-child').clone();
a.removeAttr('title').html('');
$('.slides li:first-child').wrapInner(a);
//li #2
var b = $('h2 a', '.slides li:nth-child(2)').clone();
b.removeAttr('title').html('');
$('.slides li:nth-child(2)').wrapInner(b);
//li #3
var c = $('h2 a', '.slides li:nth-child(3)').clone();
c.removeAttr('title').html('');
$('.slides li:nth-child(3)').wrapInner(c);
//li #4 (if exists)
var d = $('h2 a', '.slides li:nth-child(4)').clone();
d.removeAttr('title').html('');
$('.slides li:nth-child(4)').wrapInner(d);
});
我还有一个基本的JSFiddle设置,你可以使用现有的代码等,@ http://jsfiddle.net/qgBHT/
感谢任何帮助,谢谢。
答案 0 :(得分:2)
我应该这样做我相信:
$('.slides li h2 a').each(function(){
var a = $(this).clone();
a.removeAttr('title').html('');
$(this).closest('li').wrapInner(a);
});
答案 1 :(得分:0)
的 jsFiddle Demo
强> 的
你应该从父母那里去,而不是从孩子那里出去。因此,它将工作选择h2元素,然后基本上用链接包装该h2元素,并为该元素提供链接的文本。这也有利于不会意外地改变可能附加到现有元素的任何事件。
$('.slides li h2').each(function(){
var a = $('a',this).detach();
$(this).html(a.html()).wrap(a.html(""));
});