我的javascript中有一个模板,它将作为“加载更多”小部件的html。我想用我从数据库中提取的动态数据替换模板中的某些变量。我试图用动态数据替换特定div中的变量“id”。这是代码:
模板:
var likes_template = '<div class="activity_sub_header">You want <span class="stage_name"></span> to play {{Auth::user()->city}}!</div>'
+'<br>'
+'<div class="description">'
+'<div class="activity_body">description ... <a href="/artists/id">See more...</a></div>'
+'</div>'
+'<div class="image"><a href="/artists/id"><img src="image_path" alt="" height="80" width="80" class="img-rounded"></a>'
+'</div>'
+'<br><br><br>';
动态替换:
for (like in likes){
// Clone the element
var $like = $(likes_template).clone();
$like.attr('id', 'like-' + likes[like].ID);
var $imgId = $like.find('div.image');
$imgId.html($imgId.html().replace('id', likes[like].id));
}
从代码中可以看出,我正在尝试替换id
中的变量“div class="image"
”。但是,运行此时,我收到标题中的错误:
Uncaught TypeError: Cannot call method 'replace' of undefined in jquery
我已经能够用这种方法替换其他变量,但不是这个。我不确定我做错了什么。谢谢你的帮助!
答案 0 :(得分:1)
div.image
不是选择元素的后代。
但它是兄弟之一。
您需要使用filter
$like.find('div.image');
原来是
$like.filter('div.image');