他のいくつかの div を持つコンテナー div があります。
<div class='container'>
<div>one</div>
<div>two</div>
<div>three</div>
<div>four</div>
</div>
次のように、コンテナ div 内のすべての div を ps に変更したいと思います。
<div class='container'>
<p>one</p>
<p>two</p>
<p>three</p>
<p>four</p>
</div>
jqueryでこれを達成するにはどうすればよいですか? 前もって感謝します。
編集: 明確さの欠如をお詫びします。正確には、複数の div コンテナーがあり、それぞれに他の div が含まれています。既に提供されている回答は、div コンテナーに含まれる div のみを変更するとは思いませんが、すべての div を変更します。
<!--block one-->
<div class='container'>
<div>one</div>
<div>two</div>
<div>three</div>
<div>four</div>
</div>
<!--block two-->
<div class='container'>
<div>one</div>
<div>two</div>
<div>three</div>
<div>four</div>
</div>
<!--block three-->
<div class='container'>
<div>one</div>
<div>two</div>
<div>three</div>
<div>four</div>
</div>
等々。私が必要としているのは、div クラス コンテナー内の div のみが p に変更されることです。
<div class='container'>
<p>one</p>
<p>two</p>
<p>three</p>
<p>four</p>
</div>
<div class='container'>
<p>one</p>
<p>two</p>
<p>three</p>
<p>four</p>
</div>
それを行うための小さなプラグインがあります:
(function($) {
$.fn.changeElementType = function(newType) {
var attrs = {};
$.each(this[0].attributes, function(idx, attr) {
attrs[attr.nodeName] = attr.nodeValue;
});
this.replaceWith(function() {
return $(\"<\" + newType + \"/>\", attrs).append($(this).contents());
});
}
})(jQuery);
使用する:
$(\"div\").changeElementType(\"p\");
しかし、それを行うと、すべての div が ps に変更されませんか? クラスコンテナのdiv内のdivのみを対象とするように変更するにはどうすればよいですか? ありがとうございました。