我想从每个id和ol中的每个类中删除x_。这个ol是从表单字段生成的,所以我无法访问它。
如果我将字段值保存在变量中,我该如何删除这些字符?
这是我的一些jQuery
var itemValue = $("#ItemDescription").val();
console.log(itemValue);
$("body #demo ol.sortable").html(itemValue);
HTML (#itemDescription)的内容
<li class="x_menu-item">
<div>Menu Item</div>
<ol>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item0">
<div><a href="/_webapp_3915457/Portfolio1">Portfolio1</a></div>
</li>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item1">
<div><a href="/_webapp_3915468/Portfolio10">Portfolio10</a></div>
</li>
<li style="display: list-item;" class="x_menu-item">
<div>Menu Item</div>
<ol>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item3">
<div><a href="/_webapp_3923732/Portfolio12">Portfolio12</a></div>
</li>
</ol>
</li>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item2">
<div><a href="/_webapp_3923731/Portfolio11">Portfolio11</a></div>
</li>
</ol>
</li>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item4">
<div><a href="/_webapp_3914327/Portfolio2">Portfolio2</a></div>
</li>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item5">
<div><a href="/_webapp_3915633/Portfolio3">Portfolio3</a></div>
</li>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item6">
<div><a href="/_webapp_3915649/Portfolio4">Portfolio4</a></div>
<ol>
</ol>
</li>
<li style="display: list-item;" class="x_no-nest" id="x_menu-item7">
<div><a href="/_webapp_3915635/Portfolio5">Portfolio5</a></div>
</li>
<li class="x_no-nest" id="x_menu-item8">
<div><a href="/_webapp_3915658/Portfolio6">Portfolio6</a></div>
</li>
<li class="x_no-nest" id="x_menu-item9">
<div><a href="/_webapp_3915650/Portfolio7">Portfolio7</a></div>
</li>
<li class="x_no-nest" id="x_menu-item10">
<div><a href="/_webapp_3915354/Portfolio8">Portfolio8</a></div>
</li>
<li class="x_no-nest" id="x_menu-item11">
<div><a href="/_webapp_3915356/Portfolio9">Portfolio9</a></div>
</li>
我也想在完成后将其替换为textarea值,但我可以自己做。我只需要帮助删除“x _”
谢谢! :)
答案 0 :(得分:5)
只需使用attr
的回调函数,即可从ID中删除所有“x_”:
$("#ItemDescription li").attr('id',function(i,e){
if (typeof e != "undefined" && e.substring(0,2)=="x_") return e.substring(2);
});
示例:http://jsfiddle.net/niklasvh/Rfq2n/
如果每个元素只附加一个类,就像在您的示例中一样,您可以对类执行相同的操作:
$("#ItemDescription li").attr('id',function(i,e){
if (typeof e != "undefined" && e.substring(0,2)=="x_") return e.substring(2);
}).attr('class',function(i,e){
if (typeof e != "undefined" && e.substring(0,2)=="x_") return e.substring(2);
});
示例:http://jsfiddle.net/niklasvh/Rfq2n/6/
<击> 如果可能有多个类,并且“x_”类不是第一个类,则可以执行以下操作:
$("#ItemDescription li").attr('id',function(i,e){
if (typeof e != "undefined" && e.substring(0,2)=="x_") return e.substring(2);
}).attr('class',function(i,e){
if (typeof e != "undefined"){
if (e.split(" ").length && e.substring(0,2)=="x_") return e.substring(2);
var classes = "";
$.each(e.split(" "),function(i,b){
if (b.substring(0,2)=="x_") classes += " "+b.substring(2);
else classes += " "+b;
});
return $.trim(classes);
}
});
示例:http://jsfiddle.net/niklasvh/Rfq2n/16/
在这种情况下,请使用史蒂夫评论中提到的解决方案。
答案 1 :(得分:3)
这将处理ID:
$('#itemDescription *').attr('id', function (i, old) {
if (old.match(/^x_/)) {
return old.replace(/^x_/, '');
}
});