2017-04-04 11 views
4

ulリストから削除した後にli要素を追加しようとしました。 私はvariusメソッドでappend()appendTo()を試しましたが、まだ何もしていません。ulリストにdetached li要素を追加するには

https://jsfiddle.net/kq1yyoLk/ 基本的な考え方は、2,3,4,5,6の項目をクリックするそれはあなたがあなたの李を付加していない、あなたのアイテム-1

$(function() { 
 
    $('li').on('click', function(e) { 
 
    e.preventDefault(); 
 
    var number = $("a", this).data('number'); 
 

 
    var temp = $('list-1').detach(); 
 
    $('ul #list-item').append(temp); 
 
    }); 
 
});
#list-1 { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="features-content"> 
 
    <ul id="list-item" class="fa-ul features-list"> 
 
    <li id="list-1"><a href="#" data-number="1">1</a> 
 
    <li id="list-2"><a href="#" data-number="2">2</a></li> 
 
    <li id="list-3"><a href="#" data-number="3">3</a></li> 
 
    <li id="list-4"><a href="#" data-number="4">4</a></li> 
 
    <li id="list-5"><a href="#" data-number="5">5</a></li> 
 
    <li id="list-6"><a href="#" data-number="6">6</a></li> 
 
    <li id="list-7"><a href="#" data-number="7">7</a></li> 
 
    </ul> 
 
</div>

+0

質問は明らかではありません。正確に何が必要なのかを説明してください。 –

+1

@RoryMcCrossan投稿が更新されました。 – test

+0

コードにエラーがあります。 "$( 'ul#list-item')"このコードは間違っています。そして "$( 'list-1')"もこのコードです。 –

答えて

0

を示すことですあなたのul要素に子として

この

function function1() { 
     var ul = document.getElementById("list"); 
     var li = document.createElement("li"); 
     li.appendChild(document.createTextNode("Four")); 
     ul.appendChild(li); 
    } 
をお試しください
1

最初に、HTMLには最初の</li>がなく、$('list-1')にはIdセレクタの#がありません。

DOMから何かを追加/削除する必要はありません。

$('li').on('click', function(e) { 
 
    e.preventDefault(); 
 
    $('#list-1').show(); 
 
    var number = $(this).find('a').data('number'); 
 

 
    console.log(number); // I assume you're using this in your logic somewhere 
 
});
#list-1 { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="features-content"> 
 
    <ul id="list-item" class="fa-ul features-list"> 
 
    <li id="list-1"><a href="#" data-number="1">1</a></li> 
 
    <li id="list-2"><a href="#" data-number="2">2</a></li> 
 
    <li id="list-3"><a href="#" data-number="3">3</a></li> 
 
    <li id="list-4"><a href="#" data-number="4">4</a></li> 
 
    <li id="list-5"><a href="#" data-number="5">5</a></li> 
 
    <li id="list-6"><a href="#" data-number="6">6</a></li> 
 
    <li id="list-7"><a href="#" data-number="7">7</a></li> 
 
    </ul> 
 
</div>

+0

ソリューションは本当に簡単です!私はlist-xを切り離して、クリック後にリストに再び追加したいのですが、私は何ができますか? – test

+0

Roryの答えはあなたのコードを簡略化します@test - あなたが 'li'を外したり追加したりしたいのであれば、あなたのコードを私の答えで修正しました。 – Tom

+0

@testもしあなたがアタッチ/デタッチしたいなら、関連するイベントハンドラのスコープ内の変数に要素を格納する必要があります。正確な実装は、従いたいルールに依存します。 –

1

だから、多くの問題:liのいずれかが、このように、クリックされたとき、あなたは、単に#list-1show()を呼び出すことができます。

ここにいくつかの動作中のJavaScriptがあります。

$(function() { 
 
     $('li').on('click', function(e) 
 
     { 
 
      e.preventDefault();      
 
      var number=$("a",this).data('number'); 
 
      
 
      var temp = $('#list-1').detach(); 
 
      $('ul#list-item').append(temp); 
 
      
 
     }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="features-content"> 
 
    <ul id="list-item" class="fa-ul features-list"> 
 
    <li id="list-1"><a href="#" data-number="1">1</a></li>    
 
    <li id="list-2"><a href="#" data-number="2">2</a></li> 
 
    <li id="list-3"><a href="#" data-number="3">3</a></li> 
 
    <li id="list-4"><a href="#" data-number="4">4</a></li> 
 
    <li id="list-5"><a href="#" data-number="5">5</a></li> 
 
    <li id="list-6"><a href="#" data-number="6">6</a></li> 
 
    <li id="list-7"><a href="#" data-number="7">7</a></li> 
 
    </ul> 
 
</div>

あなたは、あなたの最初の<li>要素を閉じていませんでしたあなたのHTMLのエラーを持っています。

var temp = $('list-1').detach();では、IDで要素を参照しようとしていますが、実際にはハッシュを使用していません。

また、使用しているスタイルでは、移動後もまだ要素が表示されていないため、「要素の検査」で要素の移動しか表示されません。

また試してみて、list-itemのIDでul内の要素にtemp要素を追加する - 実際には、代わりにこのIDを持っているあなたのulだとき。

実際にコードを見て少し時間を過ごすと、これらの問題は発生しません。

2

これはリストIDを変更しても機能します。

$(function() { 
 
    $('li').on('click', function(e) { 
 
    e.preventDefault(); 
 
    $('#list-item li:first-child').show(); 
 
    }); 
 
});
#list-1 { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="features-content"> 
 
    <ul id="list-item" class="fa-ul features-list"> 
 
    <li id="list-1"><a href="#" data-number="1">1</a> 
 
    <li id="list-2"><a href="#" data-number="2">2</a></li> 
 
    <li id="list-3"><a href="#" data-number="3">3</a></li> 
 
    <li id="list-4"><a href="#" data-number="4">4</a></li> 
 
    <li id="list-5"><a href="#" data-number="5">5</a></li> 
 
    <li id="list-6"><a href="#" data-number="6">6</a></li> 
 
    <li id="list-7"><a href="#" data-number="7">7</a></li> 
 
    </ul> 
 
</div>

関連する問題