从存储变量减去类

时间:2011-07-08 15:19:34

标签: jquery html class

我有一个变量,它是UL的HTML,我想知道我是否可以从变量中删除一些东西而不是UL的实际HTML。??

EG

<ol class='sortable'>
    <li class="menu-item">
        <div>Allure</div>
        <ol>
            <li class="menu-item" style="display: list-item;">
                <div><a href="/_webapp_4002836/Allure-Gallery">Energy-Drink</a>      </div>
            </li>
        </ol>
    </li>

    <li class="menu-item disabled">
        <div>Bitten SJP</div>
        <ol>
            <li class="menu-item" style="display: list-item;">
                <div><a href="#">Bitten</a></div>
            </li>
        </ol>
    </li>
</ol>

我的JQuery做到了这个

var sortableList = $(".sortable").html();

有没有办法做到这一点

var sortableList = $(".sortable").html("MINUS ALL CLASSES ".DISABLED");

感谢您的回答

4 个答案:

答案 0 :(得分:1)

如果您尝试选择直接来自.sortable的所有未禁用的菜单项:

$(".sortable > .menu-item:not(.disabled)")

答案 1 :(得分:0)

如果您可以确保单词disabled不会出现在文本的某个位置,则应保存为在字符串的副本上使用replace("disabled",""),即:

var sortableList = $(".sortable").html();
newSortable = sortableList.replace("disabled","");
$("body").append(newSortable)

但为什么不能用removeClass来做呢?

答案 2 :(得分:0)

如果你想要没有li.disabled的ol标记,试试这个。

var sortableList = $(".sortable").find("li:not(.disabled)").wrap('<ol class="sortable" />').html();

答案 3 :(得分:0)

此示例将html与dom分开,因此您不会操纵dom:http://jsfiddle.net/Rfk6M/1/

var html = $(".sortable").clone().html();
html = $(html).each(function(){
   $(this).removeClass();
}).html();

如果你想操纵dom,请使用:

var html = $(".sortable").html();
html = $(html).each(function(){
   $(this).removeClass();
}).html();