在jquery ready()中找不到以前插入的元素

时间:2013-04-16 10:18:19

标签: javascript jquery

我的代码不起作用,似乎以后的脚本无法找到以前插入的元素。

我将基本语法错误更新为前三个答案,但似乎仍然无效。

代码:

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>
<script type="text/javascript"> 
$(document).ready( function() {
     $('#menu').html('<a href="page4.html" class="dynamicLoad">ddd</a>');
 });  

$(document).ready( function() {
        $( 'a.dynamicLoad' ).click( function( e ) {
            e.preventDefault();   // prevent the browser from following the link
            e.stopPropagation();  // prevent the browser from following the link
            $( '#myDiv' ).load( $( this ).attr( 'href' ) );
        });
});
</script>

</head>
<body>


<div id="menu">mymenu</div>
<div id="myDiv">aaaaaaaaaaaa</div>
</body>
</html>

4 个答案:

答案 0 :(得分:0)

将您的innerHTML声明更改为以下内容:

$('#menu').html("<a href='page4.html' class='dynamicLoad'>ddd</a>");
});

目前您的语句有多个语法错误。

此外, innerHTML 是Javascript jQuery - html()是jQuery的等价物。


这是一个有效的jsFiddle

您的整个代码现在应该如下所示:

<强> HTML:

<div id="menu">mymenu</div>
<div id="myDiv">aaaaaaaaaaaa</div>

<强> jQuery的:

$(document).ready( function() {
     $('#menu').html("<a href='page4.html' class='dynamicLoad'>ddd</a>");
     $( 'a.dynamicLoad' ).click( function( e ) {
           e.preventDefault();   // prevent the browser from following the link
           e.stopPropagation();  // prevent the browser from following the link
           $( '#myDiv' ).load( $( this ).attr( 'href' ) );
     });
});

答案 1 :(得分:0)

应为html()

jquery中的

innerHTML == html()

并逃避您的"

 $('#menu').html("<a href='page4.html' class='dynamicLoad'>ddd</a>");
   //------^^^^---here

答案 2 :(得分:0)

您有问题"问题,请改用.html()

$('#menu').html('<a href="page4.html" class="dynamicLoad">ddd</a>');

你应该使用jQuery的.html()方法而不是innerHTML,因为jQuery简化了一些javascript函数。 jQuery仍然是javascript,但它有不同的和一些简化的语法。

答案 3 :(得分:0)

tyr this

$('#menu').html("<a href='page4.html' class='dynamicLoad'>ddd</a>");