<body>
<script type="text/javascript">
$('#red').click(function(){
$('#write').text('red');
});
</script>
<form id="formId" name="formName" method="post">
<table>
<tr>
<td><div class="clickDiv red" id="red">mmmmmmm</div></td>
<td><div class="clickDiv green"></div></td>
</tr>
</table>
<div id="write"></div>
<input type="radio" name="satir1" value="red" />
<input type="radio" name="satir1" value="green" />
</form>
</body>这不管用。
<body>
<form id="formId" name="formName" method="post">
<table>
<tr>
<td><div class="clickDiv red" id="red">mmmmmmm</div></td>
<td><div class="clickDiv green"></div></td>
</tr>
</table>
<div id="write"></div>
<input type="radio" name="satir1" value="red" />
<input type="radio" name="satir1" value="green" />
</form>
<script type="text/javascript">
$('#red').click(function(){
$('#write').text('red');
});
</script>
</body>这是可行的。为什么?如何在页眉中使用脚本部分?
发布于 2010-12-28 01:09:03
您需要将第一个示例的javascript包装在jQuery document ready handler中。这将导致代码在执行之前等待页面元素呈现到javascript DOM中。
<script type="text/javascript">
$(function() {
$('#red').click(function(){
$('#write').text('red');
});
});
</script>发布于 2010-12-28 01:10:21
在代码的第一个版本中(不起作用),id#红色的元素在DOM中仍然不可用,因此jquery选择器找不到任何匹配的元素。在第二个版本中,元素是可用的。
但是,作为一种好的实践,建议总是使用jquery ready函数来执行需要在DOM准备就绪时立即运行的任何脚本。它的格式如下:
$(<YOUR FUNCTION>);
OR
$(document).ready(<YOUR FUNCTION>));发布于 2010-12-28 01:09:24
对您的第一个代码片段使用.ready:http://api.jquery.com/ready/
$(document).ready(function() {
$('#red').click(function(){
$('#write').text('red');
});
});在您的第一个示例中,当脚本执行时,#white还不存在,所以您需要等待文档准备就绪。
https://stackoverflow.com/questions/4540368
复制相似问题