如何将jquery应用于由ajax调用填充的标记

时间:2014-09-11 20:51:27

标签: javascript jquery html ajax markup

我根据用户选择的内容(ajax调用)动态构建页面。问题是我无法将任何jquery应用于返回的标记。当我运行获取我想要它的页面并在控制台中运行jQuery时,我得到[]返回给我。

如何针对返回的标记运行jQuery?

2 个答案:

答案 0 :(得分:1)

您必须将标记附加到DOM,然后使用JS或jQ来操作它(如果这是您想要做的)。这就是你得到空结果集的原因。

你可能犯的错误是在它准备就绪之前试图操纵它......所以无论你做什么,都要在AJAX成功回调中做。

如果您显示了一些代码,那将非常有用。你可能会得到更好的答案。

答案 1 :(得分:1)

你的问题是当你调用jQuery时,如果你在$(document).ready()上调用它,你会遇到麻烦,因为$(document).ready()你还没有添加内容。这是因为JavaScript是异步的。

这是一个简单的解决方案:

$.get('page-page-to-post.php').done(function(data) {
  // jQuery for dynamically called content
});

这样您添加内容,然后添加jQuery函数。我回过头来遇到这个问题,我在想像CSS一样的JavaScript。 CSS不断被调用。

另一种方法是添加回调函数。如果要从单独的脚本向动态添加的内容添加操作,这会减少代码膨胀,这非常有用。

// main.js
var myApp = {
  load: function(callback) {
    $.get('page-page-to-post.php').done(function(data) {
      callback();
    });
  }
}

现在,您可以像调用$(document).ready()

一样调用此函数
//new script
myApp.load(function() {
  // jQuery / JavaScript to attach to dynamically loaded content
});