2017-06-15 67 views
0

這個動態生成的html裏面添加另外一個我在我的jQuery的文件,像這樣一個動態生成的html:如何在jQuery的

var comm = '<div class="media" data-id='+user.id+'><div class="media-left"><div class="media-body"><div class="media-heading"><p><strong>'+user.title+'</strong></p><h5 class="name"><strong>'+user.name+'</strong> @ '+user.time+'</h5></div><div class="media-text"><p>'+user.body+'</p></div><div class=""><a class="reply_link">Reply</a></div><div class="reply_wrapper"></div></div></div></div><br/>'; 

和另一位在此變種COMM的.reply_wrapper內要追加。

var reply = '<div class=」row」 id="rep"><div class="rep_body"><h4 class="rep-heading"><strong>'+user.name+'</strong></h4><h4>’+user.reply+’</h4></div></div>'; 

Boh變量被聲明並綁定在點擊事件中。 爲了捕捉,其中所述第二可變「回覆」將附加父容器:

var parent_cont = $(".media").attr("[data-id="+user_id+"]"); 

然而,我試圖與此追加「COMM」內的變種「回覆」沒有成功:

parent_cont.find(".reply_wrapper").append(reply); 

請有人引導我以正確的方式編碼這個請。

+1

當用作getter時,jQuery的'attr'返回一個**字符串**,所以'parent_cont'是一個**字符串**,它沒有'find()'方法 – adeneo

+0

' $(「。media」)。attr(「[data-id =」+ user_id +「]」);''在使用'attr'方法時不會返回任何'[]'錯誤。你最可能的意思是'$(「。media」)。find(「[data-id =」+ user_id +「]」);' –

+0

Thanks @adeneo&Gaby。其中幾個Var comm將在頁面上動態生成,請如何瀏覽dom以正確選擇具有目標數據標識的那個。這是我的挑戰。 – banky

回答

1

var parent_content = $('.media[data-id=1]'); 
 

 
parent_content.find('.reply_wrapper').append('Hi there');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="media" data-id=1> 
 
    <div class="media-left"> 
 
    <div class="media-body"> 
 
     <div class="media-heading"> 
 
     <p><strong>user 1</strong></p> 
 
     <h5 class="name"><strong>user 1 name</strong> @ time</h5> 
 
     </div> 
 
     <div class="media-text"> 
 
     <p>description</p> 
 
     </div> 
 
     <div class=""><a class="reply_link">Reply</a></div> 
 
     <div class="reply_wrapper"></div> 
 
    </div> 
 
    </div> 
 
</div><br/>

您正確選擇您的parent_cont。你需要的是:

var parent_cont = $('.media[data-id=' + user_id + ']') 

這樣,你選擇了你的parent_cont。在此之後,parent_cont.find(".reply_wrapper").append(reply);應該可以工作