[英]Javascript stops working after this code
我已经为类似cmd控制台的键入效果编写了此代码。 该代码本身可以正常工作,但是我放置的所有代码都无法正常工作。 我已经尝试了好一阵子了,我很困。
这是问题的JSFiddle。 http://jsfiddle.net/GWj4b/
/**
* CONSOLE
*/
setInterval(cursorBlink, 500);
function cursorBlink() {
if($('#cursor').css('visibility') == 'hidden'){
$('#cursor').css({'visibility': 'visible'});
} else {
$('#cursor').css({'visibility': 'hidden'});
}
}
var text = $('#type').html();
var text = text.replace(/<br>/g, '_');
$('#type').html('');
$.each(text.split(''), function(i, letter) {
setTimeout(function(){
if(letter == '_'){
$('#type').html($('#type').html() + '<br />');
} else {
$('#type').html($('#type').html() + letter);
}
}, 100 * i);
});
您使用的不是HTML吗?
后
$('#type')
返回undefined
,然后执行text.replace(/<br>/g, '_');
您不能执行undefined.replace
,因此它将失败,并且执行将停止。
尝试为该JS代码添加html代码
同样,您必须在Frameworks&Extensions部分中将JQuery添加到您的小提琴中。
看到这个小提琴http://jsfiddle.net/9748L/
如果您在控制台日志中查看,则会看到: Uncaught TypeError: Cannot call method 'replace' of undefined
调用replace时未定义text,因为要查找的元素不存在。
您可以测试以查看它是否存在
if(text) {
text.replace(/<br>/g, '_');
}
如果Javascript遇到这样的运行时错误,它将停止执行。
考虑更多地了解如何使用Chrome的开发工具或浏览器中的等效工具调试此类问题。 一旦您看到该错误,就会很清楚是什么引起了该问题。
顺便说一句,在添加您要引用的元素之后,代码将通过执行。 如果它们可能不存在,则需要进行代码检入,无论如何,这都是一个好习惯。
我刚刚调试了它,看起来文本是未定义的,所以也许您还没有在html中创建该元素。
var text = text.replace(/<br>/g, '_');
确实,您缺少一些html代码,并且您尝试操作的文本是undefined
。 您可以添加以下html代码,
<span id="type">is this what you try to do????</span><span id="cursor">_</span>
达到您想要的效果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.