2

から.html()のリストを取得するために使用していますが、でを除外する必要があります<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') の内容のみが必要だと思います:

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

必ずしも .html() 文字列を追加する必要はありません。jQuery オブジェクト自体を使用できます。

于 2013-08-07T11:38:55.727 に答える
0

セレクター部分はトップレベルの要素を取得し、HTML には暗黙的に子ノードが含まれます。あなたが望むのは、(別の でラップすることによって$())HTML を複製し、「悪い」要素にドリルダウンして削除し、呼び出して、現在除外さ.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 に答える
0

これはうまくいくはずです:

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

チェーンできる jQuery オブジェクトではなく、html が文字列を返すため、コードは機能しませんでした。

幸運を

于 2013-08-07T11:33:33.227 に答える