假设我正在使用jQuery进行以下操作:
$("#myid").html('<span id="inserted">inserted portion</span>')
执行此操作后,如果我查看页面源,HTML的插入部分(id为“inserted”的span标记)在那里不可用,而且我只使用$(“#inserted”)进行的任何进一步操作失败!
当我们通过AJAX调用更新(我们通常使用jQuery html()方法插入新部件)部分页面时,这成为一个主要问题,并尝试在更新的部分中执行更多操作。
请有人解释我错过了什么?
答案 0 :(得分:2)
你为id插入绑定的任何事件....使用live,这将绑定未来的html元素或运行时添加的html
http://api.jquery.com/live/
$('#inserted ').live('click', function() {
// Live handler called.
});
答案 1 :(得分:2)
这是因为页面源只是... source ..它被加载到浏览器中。加载文档后,您可以通过jquery Document Ready函数操作文档(在加载所有图像等后执行)。
如果您想检查修改后的HTML / CSS /无论使用调试工具如firebug还是Chrome / Safari开发人员工具。
如果$("#inserted)
操作失败,我建议发布一个具体的例子。如果您不发布任何细节,我们无法真正帮助您。
答案 2 :(得分:2)
如果#myid
存在,则新元素将存在于浏览器中文档的内部表示中(“DOM”)。它不应该显示在“视图源”上,因为页面的源是原始的html(和js),但是从那时起的任何操作都应该完全像在源中存在一样。