2

我用来从 a 中提取 's.html()列表,但我需要用of排除<li>divliid#donate-link

目前我的 jQuery 是

var _topbarmenu = $("<div/>").attr({
        "id": "topbarmenu",
        }).append($('.tabs').html())
        .prepend("<li id='shop-link'>"+_pm+"</li>");

如您所见,我正在使用中提取数据$('.tabs').html()并且我已经尝试过$('.tabs').html().not('#donate-link'),但这似乎不起作用。

编辑额外内容

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

HTML

    <ul class="tabs">
        <li id="shop-link" class="garage-link"><a href="/board" class="mainmenu" original-title="Visit the Board"><span>Board</span></a></li>
        <li id="shop-link" class="garage-link"><a href="./garage.php" class="mainmenu" original-title="Visit the Virtual Garage"><span>Garage <i>[BETA]</i></span></a></li>
        <li id="shop-link" class="upload-an-image"><a href="#" original-title="Upload an Image"><span>Upload Image</span></a></li>
        <li id="shop-link"><a href="/board/merch" original-title="Purchase items from Enthst Store"><span>Store</span></a></li>
        <li id="members-link"><a href="./memberlist.php" original-title="View complete list of members"><span>Members</span></a></li>
        <li id="donate-link"> <a href="#" target="_blank" original-title="Donate"><span>Donate</span></a></li>
  </ul>

编辑 JSFIDDLE 添加

JSFIDDLE

4

5 回答 5

0

这应该有效:

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

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

祝你好运

于 2013-08-07T11:33:33.227 回答
0

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

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

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

于 2013-08-07T11:38:55.727 回答
0

选择器部分获取顶级元素,它的 HTML 隐式包含子节点。您想要的是克隆 HTML(通过包装在 another 中$()),深入到“坏”元素,将其删除,然后调用.end()返回到现在排除的.tabs克隆#donate-link。就像是.append($($(".tabs").html()).find("#donate-link").remove().end())

于 2013-08-07T11:45:42.687 回答
0

我认为这可行:

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

但这只是一个未经测试的疯狂猜测

于 2013-08-07T11:45:53.747 回答
0

可能只是通过使用$('#header .tabs').clone().not('#donate-link')

于 2013-08-07T11:59:37.973 回答