我的页面中有几个标签,如下所示:
<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>");
谁能告诉我我做错了什么?或者有更好的方法吗?
干杯。
答案 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');