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选择器

jQueryjQuery与Ajax的应用

Rails 6 和 Jquery 插件错误:$(...).validate 不是函数

find(...).populate 不是 mongoose 中的函数

错误:.find(...) 不是函数 nodejs mongoose

find 不是函数 jquery