在jquery中使用get函数时脚本没有运行

时间:2013-04-23 04:05:35

标签: javascript jquery html

我正在使用$.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 个答案:

答案 0 :(得分:0)

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

$('#infoContainer').html();

答案 1 :(得分: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>');
  };
};

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

答案 2 :(得分:0)

您没有可供参考的ID。在添加

之前尝试设置一个
embedTag.setAttribute("id", "uniqueID");

答案 3 :(得分: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's .get()方法用于将GET个请求发送到服务器端脚本。我不认为它能做你想做的事。