更改<em>标记</em>中类属性的顺序

时间:2009-11-05 03:11:25

标签: jquery

我的页面中有几个标签,如下所示:

<em class="itemx item### itemy"> text </em>

其中“#”是动态数字。

我想将其更改为

<em class="itemx item### itemy itemz"> text </em>

我尝试了以下内容,但无济于事:

 $(".itemx item### itemy").replaceWith("<em class='itemx item### itemy itemz'>" + $(".itemx item### itemy").text() + "</em>");

谁能告诉我我做错了什么?或者有更好的方法吗?

干杯。

2 个答案:

答案 0 :(得分:5)

假设您知道###是什么,您应该执行以下操作:

$('.itemx.item###.itemy').addClass('itemz');  

无需更换标签。

如果你不这样做,你可能可以逃脱

$('.itemx.itemy').addClass('itemz');

答案 1 :(得分:0)

使用您在这里尝试的代码......

$(".itemx item### itemy").replaceWith("<em class='itemx item### itemy itemz'>" + $(".itemx item### itemy").text() + "</em>");

...你正在做的是告诉jQuery在一个名为item ###的元素中找到一个名为itemy的元素,其中包含classx的任何元素。此外,您可能希望避免使用.text(),因为它会将<em>内的任何HTML转换为显示的文本,这可能会导致问题,如<abbr>内部它

看起来你在这里所做的只是将itemz添加到类中,所以你可以简单地做...

$('em.itemx').addClass('itemz');