嘿我来自textarea的文字没有显示在我的contentplaceholder中的div区域。
我的javascript可能有任何一条建议吗?
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link href="css/Style.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('button').click(function () {
var x = $('textarea').val();
$('div').html(x);
});
</script>
<textarea style="border: 0" cols="77" rows="5"></textarea>
<button>Post Message</button>
<div></div>
</asp:Content>
答案 0 :(得分:4)
当脚本运行时,该按钮不在DOM中。
<script type="text/javascript">
$(function() {
$('button').click(function () {
var x = $('textarea').val();
$('div').html(x);
});
});
</script>
这将告诉jQuery在DOM准备好之前保持该初始化函数。在这种情况下,您的函数将被调用。
或者,您可以将脚本块移动到<body>
的末尾,但这有点déclassé。
故事是,只要浏览器看到整个<script>
元素,就会运行脚本。当你把脚本放在这样的顶部时,还没有任何<button>
元素,因为浏览器还没有在文档中做到那么远。
答案 1 :(得分:2)
详细说明Pointy的答案,将脚本移到
下面</div>
或将你的代码包装在一个init()函数中,你可以通过一个onload从body标签中调用...
<script>
function whateverIwantToHappenWhenTheDomLoads(){
//put your code here
}
</script>
<body onload="whateverIwantToHappenWhenTheDomLoads()">
...