2011-01-30 63 views
0

如果我提醒x我可以看到值。但从下面的代码,我似乎无法将值附加到#result。我究竟做错了什么。jquery append var

<div id="result"></div> 
<button id="more">more</button> 
<script type="text/javascript"> 

var x = 'abcde'; 
var y = x.substring(0,2);  
$('#more').click(function(){ 
$('#result').append(x); 
});   

</script> 
+0

你有没有试过把脚本放在`$(document).ready()`里面? – alexn 2011-01-30 21:00:34

+0

没有它我该怎么办。 – Hussein 2011-01-30 21:07:06

+2

你的代码工作正常。 http://jsfiddle.net/SLaks/UAQLN/ – SLaks 2011-01-30 21:11:49

回答

0

如果我们要单独进行这个代码示例,那么答案就是:“您没有一个ID为'more'的元素来点击”。

也就是说,你可能有一个过分减少的测试用例,它不会显示所述元素出现在<script>元素之后,所以当脚本运行并试图分配事件处理程序时不存在。

2

编辑:糟糕,您的代码有效。我应该测试它,我的坏。 +1到SLaks


您需要将代码放入$(document).ready(function() { });。阅读here找出原因。

<a href="#" id='more'>More</a> 
<div id="result"></div> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var x = 'abcde'; 
    var y = x.substring(0,2);  
    $('#more').click(function(){ 
    $('#result').append(x); 
    });   
}); 
</script> 

W/O文件准备 - http://jsfiddle.net/Z2EjD/ -

<a href="#" id="more">More</a> 
<div id="result"></div> 
<script type="text/javascript"> 

var addToMore = function addToMore() { 
    var x = 'abcde'; 
    var y = x.substring(0,2);  
    $('#result').append(x);  
} 

$("#more").click(addToMore); 
</script> 

这也许能够得到改善。如果有人注意到某些事情,请发表评论。