2017-05-27 10 views
0

ol(ordered list)タグをul(順序付けられていないリスト)に置き換えたいと思います。それは動作しますが、実際にスワップすると、新しいものが書かれ、リストに追加したいと考えているとします。したがって、私は何かコードに間違っていると思う。htmlタグをjqueryに置き換えよう

本質的には動作していますが、この行では新しいリストオブジェクトを追加できません。

+3

新しいリストを追加しようとしていますあなたの問題を再現する* * [mcve] *コードを表示していただけますか? –

+0

**すべての** 'ol'タグを' ul'で置き換えるのか、それとも特定のタグだけで置き換えるのですか? – natanelg97

答えて

0

$.each($('ol'), function(ind) { 
 
    $(this).replaceWith("<ul>" + $(this).html() + "</ul>"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ol> 
 
    <li>1</li> 
 
    <li>2</li> 
 
</ol> 
 

 
<ol> 
 
    <li>First</li> 
 
    <li>Second</li> 
 
</ol>

1

これは簡単で、jQueryを使用する必要はありません。あなたはulすべてのolタグを交換したい場合には

var ol = document.querySelector('ol'); 
ol.outerHTML = ol.outerHTML.replace(/ol/, 'ul'); 

、あなたはquerySelectorAll()を使用してループを実行する必要があります。例:

var ol = document.querySelectorAll('ol'); 
for(var i = 0; i < ol.length; i++) { 
    ol[i].outerHTML = ol[i].outerHTML.replace(/ol/, 'ul'); 
} 

Fiddle 1

+0

すべてを置き換えるのに 'querySelectorAll'が必要です – quirimmo

+0

@quirimmo真ですが、opはそれらのすべてについて何も言わなかった。私はとにかくそれを更新します – natanelg97

0

すでにDOMで作成された要素の上に行っている操作を交換Fiddle 2。新しい要素を順序付けられていないリストとして追加すると、順序付けられていないlist.soになります。新しい要素を追加するたびにreplaceメソッドを呼び出して、順序付きリストとして置換する必要があります。

関連する問題