好的,我一直试图让它在30分钟内完成。
在这个jsfiddle中一切正常: - http://jsfiddle.net/6KT4R/1/
但是当我在我的本地wamp服务器上运行时......似乎什么也没发生!。
代码: -
<script src="js/jquery-1.8.2.min.js" type="text/javascript">
</script>
<script type="text/javascript">
var inputLtc = document.getElementById('input-ltc'),
inputBtc = document.getElementById('input-btc');
var constantNumber = 0.022632;
inputLtc.onkeyup = function () {
var result = parseFloat(inputLtc.value) * constantNumber;
inputBtc.value = !isNaN(result) ? result : '';
};
</script>
<input type="text" name="ltc" id="input-ltc">
<input type="text" name="btc" id="input-btc" readonly>
这里可能有什么问题? 感谢。
答案 0 :(得分:3)
脚本在加载DOM之前执行。尝试:
window.onload = function(){
var inputLtc = document.getElementById('input-ltc'),
inputBtc = document.getElementById('input-btc');
var constantNumber = 0.022632;
inputLtc.onkeyup = function () {
var result = parseFloat(inputLtc.value) * constantNumber;
inputBtc.value = !isNaN(result) ? result : '';
};
}
正如m59所说,有一种改进的方法来执行事件onload。以下代码段是首选:
var funct = function(){
var inputLtc = document.getElementById('input-ltc'),
inputBtc = document.getElementById('input-btc');
var constantNumber = 0.022632;
inputLtc.onkeyup = function () {
var result = parseFloat(inputLtc.value) * constantNumber;
inputBtc.value = !isNaN(result) ? result : '';
};
}
if (window.attachEvent){
window.attachEvent('onload', funct);
}else{
element.addEventListener('load', funct, false);
}
答案 1 :(得分:2)
您在页面上存在元素之前获取元素引用。在jsfiddle中,javascript在html之后执行。您可以通过在相关的html下面移动脚本标记来重现这一点。最好将所有脚本标记放在正文结尾之前,如下所示:
<script></script>
</body>
否则,您需要注册一个事件监听器来监视页面加载并执行您的javascript代码。
window.addEventListener('load', function() {
console.log('loaded!');
});
使用jQuery :
$(document).ready(function() {
console.log('loaded!');
});
//this is the jQuery shorthand for the same function above
$(function() {
console.log( "loaded!" );
});