如何从班级中删除角色?

发布于 2024-11-18 05:46:26 字数 2709 浏览 7 评论 0原文

我想从 ol 中的每个 id 和每个类中删除 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_”

谢谢!! :)

I want to remove x_ from every id and every class in a ol. This ol is generated from a form field so I can't get access to it.

if I save the field value in a variable, how can i remove these characters?

Here's some of my jQuery

var itemValue = $("#ItemDescription").val();
console.log(itemValue);
$("body #demo ol.sortable").html(itemValue);

HTML
content of (#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>

I also want to replace it into the textarea value when I'm done but I can do that myself. I just need help with the removal of "x_"

Thanks!! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

堇年纸鸢 2024-11-25 05:46:26

您只需使用 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/

如果每个元素仅附加 1 个类(如示例所示),则可以对类执行相同操作:

$("#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/

在这种情况下,请使用下面评论中提到的解决方案史蒂夫.

You can remove all the "x_" from the ID's with simply using the callback function of attr:

$("#ItemDescription li").attr('id',function(i,e){
   if (typeof e != "undefined" && e.substring(0,2)=="x_") return e.substring(2);
});

example: http://jsfiddle.net/niklasvh/Rfq2n/

If you only have 1 class attached per element, like in your example, you can do the same with the classes:

$("#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);
});

example: http://jsfiddle.net/niklasvh/Rfq2n/6/


In case there may be multiple classes, and the "x_" class isn't the first one, you could do this:

$("#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);
    }
});

example: http://jsfiddle.net/niklasvh/Rfq2n/16/

In that case, use the solution mentioned in the comment below by steve.

治碍 2024-11-25 05:46:26

这将处理 ID:

$('#itemDescription *').attr('id', function (i, old) {
    if (old.match(/^x_/)) {
        return old.replace(/^x_/, '');
    }
});

jsFiddle 演示

This will take care of the IDs:

$('#itemDescription *').attr('id', function (i, old) {
    if (old.match(/^x_/)) {
        return old.replace(/^x_/, '');
    }
});

jsFiddle Demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文