find 不是函数 jquery
Posted
技术标签:
【中文标题】find 不是函数 jquery【英文标题】:find is not a function jquery 【发布时间】:2018-10-01 09:10:20 【问题描述】:你好,
我有我的观点,我正在尝试渲染模板
<div id="template" style="display:none;">
<div class="col-lg-4 col-md-6 col-sm-12">
<div class="thumbnail">
<a href="" class="btn btn-primary btn-sm editar">Editar</a>
<h3 class="centrar"></h3>
<a class="index" href="">
<img class="image" src="" />
</a>
<p class="description">data[i].Descripcion</p>
</div>
</div>
还有一个 ajax 调用
//ajax starts here...
//....
success: function (data)
$.each(data, function (index, item)
var clone = $('#template').clone().html();
console.log(clone);
parent.append(clone);
clone.find('.editar').attr('href', editarUrl + '/' + item.Id);
clone.find('.centrar').text(item.Titulo);
clone.find('.index').attr('href', indexUrl + '?CursoId' + item.Id);
clone.find('.image').attr('src', item.ImagenUrl);
clone.find('.description').text(item.Descripcion);
)
我使用控制台日志查看变量clone是否包含html,确实如此。我的问题是我收到一条消息>>> find不是一个函数。
我该怎么办?谢谢。
【问题讨论】:
clone
是一个包含 #template
元素的 HTML 的字符串。它不是一个 jQuery 对象——因此是错误的。
抱歉,请问我该如何解决这个问题?我正在尝试使用模板并向其添加信息
我添加了一个答案,向您展示了您可以使用的方法。
【参考方案1】:
问题是因为clone
是一个包含#template
元素的HTML 的字符串。它不是一个 jQuery 对象。这就是您收到错误的原因。
要解决此问题,您需要在 jQuery 对象中引用克隆的内容。您可以通过使用appendTo()
并存储参考来实现这一点。像这样的:
success: function (data)
$.each(data, function (index, item)
var html = $('#template').html();
var $clone = $(html).appendTo(parent);
$clone.find('.editar').attr('href', editarUrl + '/' + item.Id);
$clone.find('.centrar').text(item.Titulo);
$clone.find('.index').attr('href', indexUrl + '?CursoId' + item.Id);
$clone.find('.image').attr('src', item.ImagenUrl);
$clone.find('.description').text(item.Descripcion);
);
);
【讨论】:
以上是关于find 不是函数 jquery的主要内容,如果未能解决你的问题,请参考以下文章
jQuery - 01. jQuery特点如何使用jQueryjQuery入口函数jQuery和DOM对象的区别jQuery选择器
Rails 6 和 Jquery 插件错误:$(...).validate 不是函数
find(...).populate 不是 mongoose 中的函数