jQuery使用.html()但需要排除一个元素

时间:2013-08-07 11:28:52

标签: jquery

我使用.html()<li>中提取div的列表,但我需要将li排除在id之后{1}} {/}的{1}}

目前我的jQuery是

#donate-link

正如您所看到的那样,我使用var _topbarmenu = $("<div/>").attr({ "id": "topbarmenu", }).append($('.tabs').html()) .prepend("<li id='shop-link'>"+_pm+"</li>"); 提取数据并尝试$('.tabs').html(),但这似乎不起作用。

编辑额外内容

$('.tabs').html().not('#donate-link')

HTML

var _topbarmenucontent = $('#header .tabs').html();
$(_topbarmenucontent).find('#donate-link').remove();
var _topbarmenu = $("<div/>").attr({
    "id": "topbarmenu",
    })  .append(_topbarmenucontent)
        .prepend("<li id='shop-link'>"+_pm+"</li>");
var _topcontent = $("<div/>").append(_topbarlogo).append(_topbarmenu);
$(_topbar).append(_topcontent);

$("#wrap").prepend(_topbar);
$(window).scroll(function(e){
    if ($(window).scrollTop() > 170) {
        console.log('>10');
        $(_topbar).slideDown();
    } else if ($(window).scrollTop() == 0) {
        console.log('0');
        $(_topbar).slideUp();
    } else {
        console.log('0');
        $(_topbar).slideUp();
    }
});

EDIT JSFIDDLE ADDED

JSFIDDLE

5 个答案:

答案 0 :(得分:0)

这应该有效:

$('.tabs').not('#donate-link').html()

您的代码不起作用,因为html返回的字符串不是可以链接的jQuery对象。

祝你好运

答案 1 :(得分:0)

我猜你只需要$('。tabs')的内容,而不需要元素本身:

.append($('.tabs').children().not('#donate-link'));

您不一定要附加.html()字符串,您可以使用jQuery对象本身。

答案 2 :(得分:0)

选择器部分获取顶层元素,它的HTML隐式包含子节点。你想要的是克隆HTML(通过包装在另一个$()中),向下钻取到“坏”元素,删除它,然后调用.end()返回克隆的.tabs现在排除了#donate-link。像.append($($(".tabs").html()).find("#donate-link").remove().end())

这样的东西

答案 3 :(得分:0)

我认为这可行:

 .append($('.tabs:not(#donate-link)').html());

但是它只是一个未经测试的狂野猜测

答案 4 :(得分:0)

可能刚刚使用$('#header .tabs').clone().not('#donate-link')

宣布了这一点