0

我整天都在尝试并阅读一些东西,但由于某种原因,我的代码无法正常工作

我想要实现的是:当我在索引页面中创建一个无序列表时 - 我希望我的 jquery 自动添加锚点中的文本。所以我希望它看起来像这样

<li><a href="index.htm"><span>Home</span></a></li>

虽然我只是添加:

<li><a href="index.htm">Home</a></li>

我想这样做是因为我有很多列表项,而不是在我添加页面时编写,从长远来看,节省一些时间并创建一个循环来处理我添加一个时的处理是最有意义的。

这是我到目前为止所拥有的(对不起,如果它看起来很丑):

$('document').ready(function () {
    var begSpan = "<span>";
    var endSpan = "</span>";
    $('p').each(function () {
        $(this) prepend(begSpan);
    }).append(endSpan);
});

我怎样才能让它为我自动创建跨度标签

4

3 回答 3

2

您正在寻找的是.wrapInner()

$(document).ready(function() {
    $('li a').wrapInner('<span/>');
});

演示:小提琴

于 2013-10-27T03:51:47.737 回答
2
$(document).ready(function() {
    $('li a').wrapInner('<span/>');
});

小提琴

.wrapInner()文档

我还建议使用更具体的选择器(例如#menuId li a)来保证未来的适用性。


我使用的原始答案.wrap()会生成一个li > span > aDOM 结构,但是您请求的结构似乎li > a > span可以通过.wrapInner().

于 2013-10-27T03:46:21.663 回答
1

使用.wrap()

$(document).ready(function() {
    $('li > a').wrap('<span>');
});

演示

于 2013-10-27T03:47:03.527 回答