アプリ版:「スタンプのみでお礼する」機能のリリースについて

Jqueryを利用して
下記の様なリストを作成したいと思っています。

<ul class=“list”>
<li class="item"><img src="/images/slider_01.png" alt=""></li>
<li class="item"><img src="/images/slider_02.png" alt=""></li>
<li class="item"><img src="/images/slider_03.png" alt=""></li>
<li class="item"><img src="/images/slider_04.png" alt=""></li>
<li class="item"><img src="/images/slider_05.png" alt=""></li>
<li class="item"><img src="/images/slider_06.png" alt=""></li>
<li class="item"><img src="/images/slider_07.png" alt=""></li>
</ul>

ただ、imgタグの中身は同ページ内の別の場所に下記の様に記載されており、複数のimgタグを抜き出してul.list > li.item の中に出力する必要があります。

<div class=“roop”>
<p class=“roop_child”><img src="/images/slider_01.png" alt=""></p>
<p class=“roop_child”><img src="/images/slider_02.png" alt=""></p>
<p class=“roop_child”><img src="/images/slider_03.png" alt=""></p>
<p class=“roop_child”><img src="/images/slider_04.png" alt=""></p>
<p class=“roop_child”><img src="/images/slider_05.png" alt=""></p>
<p class=“roop_child”><img src="/images/slider_06.png" alt=""></p>
<p class=“roop_child”><img src="/images/slider_07.png" alt=""></p>
</div>

複数のimgタグを抜き出し、任意要素の中に順番に出力する方法を教えて頂く事はできませんでしょうか?

A 回答 (3件)

こんな感じじゃないですか?


(受け皿が必要なのでdivをひとつよういしてあります)

<script>
$(function(){
if($('.roop img').length>0){
var ul=$('<ul>').addClass('list').appendTo($('#hoge'));
$('.roop img').each(function(){
$('<li>').addClass('ltem').append($(this).clone()).appendTo(ul);
});
}
});
</script>
<div id="hoge"></div>

<div class="roop">
<p class="roop_child"><img src="/images/slider_01.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_02.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_03.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_04.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_05.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_06.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_07.png" alt=""></p>
</div>
    • good
    • 0

こんにちは



要素の特定がクラスなので、複数存在する場合は全てを対象とするものとして解釈しました。(実際のHTMLでは、要素はひとつなのだと想像しますが…)

<script type="text/javascript">
$(function(){
var ul = $("ul.list").html("");
$("div.roop>p.roop_child>img").each(function(i, e){
$('<li class="item">').append($(e).clone()).appendTo(ul);
});
});
</script>

<ul class="list">
<li>ここに表示される</li>
</ul>

<div class="roop">
<p class="roop_child"><img src="/images/slider_01.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_02.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_03.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_04.png" alt=""></p>
</div>

<div class="roop">
<p class="roop_child"><img src="/images/slider_05.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_06.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_07.png" alt=""></p>
</div>

※ ご提示のHTMLではクラス名のクォーテーションの文字コードが正しくないようですので、ご提示のままのHTMLだと認識されない場合があるようです。
    • good
    • 0

こういうこと?



<html>
<head>
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></s …
<script>
function hoge() {
var ulElem = $("ul.list");
$("p.roop_child").each(function(i, elem) {
var liElem = $('<li class="item">').append($(elem).html());
ulElem.append(liElem);
});
}
</script>
</head>
<body>
<button onclick="hoge()">run</button>
<ul class="list">
</ul>
<div class="roop">
<p class="roop_child"><img src="/images/slider_01.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_02.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_03.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_04.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_05.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_06.png" alt=""></p>
<p class="roop_child"><img src="/images/slider_07.png" alt=""></p>
</div>
</body>
</html>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!