Javascript ';对于循环';以及可能的语法错误
这是我当前的javascript。在我添加“for循环”之前,我知道它是有效的。for循环的要点是切换字母。目前,它正在检查3组是否等于一个字母。稍后我会解决这个问题,但我知道一定有语法错误,因为当鼠标移到按钮上时,按钮不会褪色。我知道这是一个愚蠢的问题,当我看到错误的时候,我会踢自己,但我现在很累,一辈子都找不到它。此外,这是否是一种有效的循环方式来更改字母?这是将数组值设置为新字母的正确方法吗 下面是script.js:Javascript ';对于循环';以及可能的语法错误,javascript,jquery,syntax,syntax-error,Javascript,Jquery,Syntax,Syntax Error,这是我当前的javascript。在我添加“for循环”之前,我知道它是有效的。for循环的要点是切换字母。目前,它正在检查3组是否等于一个字母。稍后我会解决这个问题,但我知道一定有语法错误,因为当鼠标移到按钮上时,按钮不会褪色。我知道这是一个愚蠢的问题,当我看到错误的时候,我会踢自己,但我现在很累,一辈子都找不到它。此外,这是否是一种有效的循环方式来更改字母?这是将数组值设置为新字母的正确方法吗 下面是script.js: $(document).ready(function() {
$(document).ready(function() {
$('#button_translate').mouseenter(function() {
$('#button_translate').fadeTo('fast', 1);
});
$('#button_translate').mouseleave(function() {
$('#button_translate').fadeTo('fast', 0.7);
});
$('#button_clear').mouseenter(function() {
$('#button_clear').fadeTo('fast', 1);
});
$('#button_clear').mouseleave(function() {
$('#button_clear').fadeTo('fast', 0.7);
});
$('#button_translate').click(function() {
var dna = $('input[name=dna]').val();
var dna = dna.toUpperCase();
function allBases(text) {
var bases = /^[ACGT]+$/;
if(text.match(bases)) {
var arr = text.match(/.{1,1}/g);
/*document.write(arr + " is a DNA sequence.");*/
for (var i = 0; i < (dna.length); i++) {
if (arr[i]==='A') {
arr[i]='U'
}else if (arr[i]==='C') {
arr[i]='G'
}else if (arr[i]==='G') {
arr[i]='C'
}else if (arr[i]==='T') {
arr[i]='U'
}else{
document.write(dna + " is not a real DNA sequence. Error Code 2");
}
}
document.write(dna + " is the translated mRNA strand!");
}else{
document.write(dna + " is not a real DNA sequence.");
}
}
allBases(dna);
});
});
$(文档).ready(函数(){
$(“#按钮_translate”).mouseenter(函数(){
$('按钮翻译').fadeTo('快速',1);
});
$('#按钮_translate').mouseleave(函数(){
$('按钮翻译').fadeTo('快速',0.7);
});
$(“#按钮_清除”).mouseenter(函数(){
$('按钮清除').fadeTo('快速',1);
});
$('#按钮_清除')。鼠标移动(函数(){
$('按钮清除').fadeTo('快速',0.7);
});
$('#按钮_translate')。单击(函数(){
var-dna=$('input[name=dna]').val();
var-dna=dna.toUpperCase();
函数allbase(text){
变量基数=/^[ACGT]+$/;
if(text.match(base)){
var arr=text.match(/.{1,1}/g);
/*写(arr+“是一个DNA序列”)*/
对于(变量i=0;i<(dna.length);i++){
如果(arr[i]=='A'){
arr[i]=“U”
}else if(arr[i]='C'){
arr[i]=“G”
}否则如果(arr[i]='G'){
arr[i]=“C”
}否则如果(arr[i]='T'){
arr[i]=“U”
}否则{
写入(dna+“不是真实的dna序列。错误代码2”);
}
}
写(dna+“是翻译的mRNA链!”);
}否则{
写(dna+“不是真正的dna序列”);
}
}
所有碱基(dna);
});
});
for循环中有一个未关闭的(
)
for (var i=0; i>=(dna.length) / 3); i++) { // extra ( in i>=((dna.length) / 3)
你可能希望循环条件是小于dna的长度
for (var i = 0; i < (dna.length/3); i++) {
for(变量i=0;i<(dna.length/3);i++){
但我想用它的长度除以3,是否不需要额外的一对括号?它会混淆程序吗?@rilelloyd额外的(
是不需要的,因为表达式将根据
运算符的优先级高于=
运算符的位置进行处理。是否应重新声明数组元素。var arr[i]='U'
变为arr[i]='U'
?更新了代码。仍然不起作用。它起什么作用?我注意到您已将除法删除了3。这是故意的吗?我故意删除除法,我正在使用“dna”字符串与数组相对,即使我在文本框中只输入一个字母,它仍然不起作用。是的,您将无法使用arr[index]访问字符串的部分内容。这是数组访问语法,对于字符串,您必须使用字符串替换
for (var i = 0; i < (dna.length/3); i++) {