1

我正在使用该$.get()功能从我的网站中提取一些数据。一切都很好,但是在其中一个页面上,我需要提取的信息是动态创建的,然后插入到<div>标签中。

所以在<script>标签中,运行一个函数,然后将数据插入到<div id="infoContainer"></div>. 我需要从中获取信息#infoContainer,但是当我尝试在$.get()函数中这样做时,它只是说它是空的。我发现这是因为<script>标签没有运行。还有另一种方法可以做到这一点吗?

编辑:我正在使用 jQuery 为我的网站制作一个 PhoneGap 应用程序来移动内容,因此它对于手机来说更加精简。

这是我页面上的代码:

$(document).ready(function () {
    var embedTag = document.createElement("embed");
    var infoContainer = document.getElementById("infoContainer");

    if (infoContainer != null) {
        embedTag.setAttribute("height", "139");
        embedTag.setAttribute("width", "356");...other attributes

        infoContainer.appendChild(embedTag);
    });
});

如您所见,它将内容放入#infoContainer标签中。但是,当我尝试通过 get 函数从该标签中提取信息时,它显示为空。我已经做了同样的事情来提取标题并且效果很好。我只能收集到脚本标签没有触发。

4

4 回答 4

0

看起来您想使用 jQuery,但您的示例代码有 vanilla JavaScript。可以使用以下 jQuery ( jsFiddle ) 简化您的整个函数:

(function () {
    var embedTag = $(document.createElement("embed"));
    var infoContainer = $("#infoContainer");

    if (infoContainer.length) {
        embedTag.attr({"height": 139, "width": 356});
        infoContainer.append(embedTag);
    }

    console.log(infoContainer.html()); // This gets you the contents of #infoContainer
})();

jQuery 的 .get()方法用于向GET服务器端脚本发送请求。我不认为它做你想做的事。

于 2013-04-23T06:09:39.637 回答
0

这应该为您提供元素的内容:

$('#infoContainer').html();
于 2013-04-23T04:13:11.210 回答
0

也许您的脚本在加载 DOM 之前正在执行。

因此,如果您正在操作 DOM 元素,您应该等到 DOM 加载后才能操作它。或者,您可以将脚本标记放在 HTML 文档的末尾。

// These three are equivalent, choose one:
document.addEventListener('DOMContentLoaded', initializeOrWhatever);
$( initializeOrWhatever );
$.ready( initializeOrWhatever );

function initializeOrWhatever(){
  // By the time this is called, the DOM is loaded and you can read/write to it
  $.getJSON('/foo/', { myData: $('#myInput').val() }, onResponse);
  function onResponse(res){  
    $(document).html('<h1>Hello '+res+'</h1>');
  };
};

否则...发布更多细节和代码

于 2013-04-23T04:27:44.547 回答
0

您没有可参考的 ID。在追加之前尝试设置一个

embedTag.setAttribute("id", "uniqueID");
于 2013-04-23T05:05:36.230 回答