2017-02-08 12 views
0

こんにちは、子要素のコンテンツを別の要素に配置したいと考えています。クリックした要素のコンテンツを別の要素に配置

私は、 "DetailsExpanded"と呼ばれる隠しdivと "IconWrapper"という一連の項目を持っています。 "IconWrapper"をクリックすると、そのアイテム "ItemDetail"の内容を "DetailsExpanded"にコピーし、 "DetailsExpanded"をその内容で下にスライドさせたいと考えています。

下記のHTML構造を参照してください。

私はスライディングjsで始まりましたが、私は残念なことに私の深さから少しです。

$(".IconWrapper").click(function() { 
 
    if ($(".DetailsExpanded").is(":hidden")) { 
 
    $(".DetailsExpanded").slideDown("fast"); 
 
    } else { 
 
    $(".DetailsExpanded").hide(); 
 
    } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="DetailsExpanded"></div> 
 

 
     <div class="IconWrapper"> 
 
      <div class="ItemDetail">Content to copy</div> 
 
      <div class="Icon icon-icons-d-steps"></div> 
 
     </div> 
 

 
     <div class="IconWrapper"> 
 
      <div class="ItemDetail">Content to copy</div> 
 
      <div class="Icon icon-icons-d-steps"></div> 
 
     </div> 
 

 
     <div class="IconWrapper"> 
 
      <div class="ItemDetail">Content to copy</div> 
 
      <div class="Icon icon-icons-d-steps"></div> 
 
     </div>

+1

jQueryの 'の.html( "セレクタ")'関数は、マッチした要素のセットの最初の要素の内容を取得http://api.jquery.com/html/ – elementzero23

答えて

1

あなたがしなければならないのは、クリックされた要素の.html()を取るために、あなた.DetailsExpanded要素でそれを設定することです:

$(".IconWrapper").on("click", function() { 
    var content = $(this).find(".ItemDetail").html(); 
    $(".DetailsExpanded").html(content); 
    $(".DetailsExpanded").slideToggle("fast"); // this replaces slideDown or hide 
}); 
+0

こんにちは助けてくれてありがとう!私は最初の "IconWrapper"をクリックし、内部の正しい内容でスライドします。しかし、別の「IconWrapper」をクリックすると、内容が変わり、スライドします。私は次の行を追加しました:$( "DetailsExpanded")。slideDown( "fast"); 'スライドは正しく動作しますが、スライド遷移が始まる前にコンテンツがロードされています。閉じています? – Salmon

+0

それを動作させるために管理されます。私の道をリードしてくれてありがとう。ここで私が '$("。IconWrapper ")をしたのですが、これは$ {" Details "}" 。。 ")slideDown("; " \t \t \t $()HTML(コンテンツ)")」DetailsExpanded速い。DetailsExpanded \t: ")){ \t \t \t $( '隠された')(.is"他の場合\t \t} 。($( "DetailsExpanded ")がある(:) '可視'){ \t \t \t $("。DetailsExpanded ")slideUp(" 速い" 関数(){ \t \t \t \t $( "。DetailsExpanded")。html(content); \t \t \t \t $( "。DetailsExpanded")。slideDown( "fast"); \t \t \t}); \t \t \t} }); – Salmon

0

$(".IconWrapper").click(function() { 
 
    var text = $(this).find('.ItemDetail').text(); 
 
    $(".DetailsExpanded").html(text).slideDown("slow"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="DetailsExpanded"></div> 
 

 
     <div class="IconWrapper"> 
 
      <div class="ItemDetail">Content to copy1</div> 
 
      <div class="Icon icon-icons-d-steps"></div> 
 
     </div> 
 

 
     <div class="IconWrapper"> 
 
      <div class="ItemDetail">Content to copy2</div> 
 
      <div class="Icon icon-icons-d-steps"></div> 
 
     </div> 
 

 
     <div class="IconWrapper"> 
 
      <div class="ItemDetail">Content to copy3</div> 
 
      <div class="Icon icon-icons-d-steps"></div> 
 
     </div>

これはあなたの探しているものですか?

0

$(document).ready(function(){ 
 

 
    $('.IconWrapper').on('click', function(e) { 
 
     $(".DetailsExpanded").text($(this).text()).slideDown(); 
 
    }); 
 
});

関連する問題