我可以使用jQuery更改页面上链接的内容吗?

我可以使用jQuery更改页面上链接的内容吗?,jquery,Jquery,我的HTML如下所示: <div id="control"> <a href="/xx/x">y</a> <ul> <li><a href="/C003Q/x" class="dw">x</a></li> <li><a href="/C003R/xx" class="dw">xx</a></li>

我的HTML如下所示:

<div id="control">
    <a href="/xx/x">y</a>
    <ul>
        <li><a href="/C003Q/x" class="dw">x</a></li>
        <li><a href="/C003R/xx" class="dw">xx</a></li>
        <li><a href="/C003S/xxx" class="dw">xxx</a></li>
    </ul>
</div>
您可以使用each()遍历类型为
a
且具有
class
dw
的元素

$('#control a.dw').each(function(){  
    $(this).html("<span>" + $(this).text() + "</span>" );
});
试试这个:

$("#control a").each(function() {
    var $el = $(this);
    $el.html("<span>" + $el.text() + "</span>")
        .data('href', $el.attr('href'))
        .removeAttr('href');
});
$(“#控制a”)。每个(函数(){
var$el=$(本);
$el.html(“+$el.text()+”)
.data('href',$el.attr('href'))
.removeAttr('href');
});

您可以使用
wrapInner
数据
方法

$('#control a').each(function(){
    $(this).data('href', this.href).wrapInner('<span></span')
    // $(this).attr('data-href', this.href)
    //                       .removeAttr('href') // not a good idea
    //                       .wrapInner('<span></span>')
})
$('#控件a')。每个(函数(){

$(this.data('href',this.href.).wrapInner('您可以像这样将href标记更改为data href标记

var foo=$("#control").html();
foo=foo.replace(/href/g,"data-href");
$("#control").html(foo);

您可以尝试这样做,将每个href属性更改为data href,然后添加span标记:

$("#control").find('a').each(function() {
    $(this).attr('data-href',$(this).attr('href'));
    $(this).removeAttr('href');
    $(this).html("<span>" + $(this).text() + "</span>" );
});​​​​​​​​
$(“#控件”).find('a').each(函数(){
$(this.attr('data-href',$(this.attr('href'));
$(this.removeAttr('href');
$(this.html(“+$(this.text()+”);
});​​​​​​​​

很抱歉。我在dw类中犯了一个错误。你能看看我修订的问题吗?不是所有链接都有dw类。还有没有办法我也可以将href更改为data href?我在问题中有这个,但可能你错过了。Thanks@Anne同样,请参见更新:)请注意,您不会在代码中看到
data href
属性,因为它存储在jQuerys内部缓存中,但可以通过
var href=$el.data('href')访问它
很抱歉。我在dw类中犯了一个错误。你能看看我修订的问题吗?不是所有链接都有dw类。还有没有办法我也可以将href更改为data href?我已经用新的选择器更新了我的答案,并将href替换为data href,但这会将href更改为“data href”吗。它看起来是另一种方式。@Anne
data
是一个属性而不是属性,使用
data
方法值存储在dataset对象中,如果您想查看属性,可以使用
attr
方法。
var foo=$("#control").html();
foo=foo.replace(/href/g,"data-href");
$("#control").html(foo);
$("#control").find('a').each(function() {
    $(this).attr('data-href',$(this).attr('href'));
    $(this).removeAttr('href');
    $(this).html("<span>" + $(this).text() + "</span>" );
});​​​​​​​​