0

我正在使用 jQuery 将远程 HTML 加载到 DIV 中,并且需要访问其中包含的所有元素和 JS。似乎插入的 HTML 已添加并正确呈现,但元素不在 DOM 中。如何访问这些新元素?使用 document.getElementById('myDiv') 返回 null

var canvas .. 在下面的脚本中返回 null,我不明白为什么。

<script>

function draw(){
  var canvas=document.getElementById("pdf1");
  var pdf=canvas.getContext("2d");
// other code here populates canvas.....

}

</script>

<body>
<div>
<canvas  id="pdf1" width="801" height="1041"></canvas>
</div>
</body>
<script type="application/javascript">
$(window).load(draw());
</script>
</html>
4

3 回答 3

1
$('#new_html_wrapper').load('file.html', function(){

    // Access the new DOM elements here inside the load callback.

    $(this).on('#myDiv','click',function(){
        alert('You clicked on myDiv!');
    });

    $('#myDiv', this).css('background','red');

});

// Accessing the elements here will fail as they haven't been loaded yet.

阅读更多:http ://api.jquery.com/load/

也不要使用document.getElementById('myDiv').

你已经加载了 jQuery,所以这样做:$('#myDiv').

于 2012-08-29T17:12:31.467 回答
0

在插入 HTML 之前,您会尝试获取内容。
您应该尝试在插入内容后访问该元素。即如果你在插入内容后调用相同的函数,你可以得到div中的内容。

或者,如果您想在稍后出现的内容(如您的情况下插入数据)上绑定一些事件,如点击,您可以实时绑定事件,如下所示

$("div.className").live("click",function(){ alert('1'); })

$("document").on("div.className","click",function( ){ 警报('1'); })

于 2012-08-29T17:06:55.540 回答
0

如果您需要将事件绑定到这些新元素,请使用.on() 函数

于 2012-08-29T17:02:46.883 回答