Javascript 需要关于parseInt()函数的帮助吗

Javascript 需要关于parseInt()函数的帮助吗,javascript,Javascript,如何使用parseInt函数从短语对象获取短语编号?我试图在下面的var phrasenum中的swapFE函数中创建该函数,但没有成功。我认为我的价值观是错误的。我应该在那里放什么?任何帮助都将不胜感激。提前谢谢!以下是要使用的法语短语编号1-10或JavaScript 0-9以及法语和英语短语: > var english=new Array(); english[0]="This hotel isn't far from the Eiffel Tower."; english[1]=

如何使用parseInt函数从短语对象获取短语编号?我试图在下面的var phrasenum中的swapFE函数中创建该函数,但没有成功。我认为我的价值观是错误的。我应该在那里放什么?任何帮助都将不胜感激。提前谢谢!以下是要使用的法语短语编号1-10或JavaScript 0-9以及法语和英语短语:

> var english=new Array();
english[0]="This hotel isn't far from the Eiffel Tower.";
english[1]="What time does the train arrive?";
english[2]="We have been waiting for the bus for one half-hour.";
english[3]="This meal is delicious";
english[4]="What day is she going to arrive?";
english[5]="We have eleven minutes before the train leaves!";
english[6]="Living in a foreign country is a good experience.";
english[7]="Excuse me! I'm late!";
english[8]="Is this taxi free?";
english[9]="Be careful when you go down the steps.";

var french=new Array();
french[0]="Cet hôtel n'est pas loin de la Tour Eiffel.";
french[1]="A quelle heure arrive le train?";
french[2]="Nous attendons l'autobus depuis une demi-heure.";
french[3]="Ce repas est délicieux";
french[4]="Quel jour va-t-elle arriver?";
french[5]="Nous avons onze minutes avant le départ du train!";
french[6]="Habiter dans un pays étranger est une bonne expérience.";
french[7]="Excusez-moi! Je suis en retard!";
french[8]="Est-ce que ce taxi est libre?";
french[9]="Faites attention quand vous descendez l'escalier.";
以下是我正在处理的功能:

function setUpTranslation() {
   var phrases = document.getElementsByTagName("p");

   for (i = 0; i<phrases.length; i++) {
      phrases[i].number = i;
      phrases[i].childNodes[1].innerHTML = french[i];

      phrases[i].childNodes[1].onmousedown = function() { swapFE(event); }; 
  }

}

function swapFE(e) {
       var phrase = e.srcElement; 

       var phrasenum = parseInt(phrase[1].childNodes[1].innerText);

       alert("French Number = "+phrasenum+"Phrase = "+phrase.childNodes[1]);
}

我不确定你的实现出了什么问题。但是,如果parseInt的返回值似乎不正确,那么您可能应该尝试将基与字符串一起作为输入。e、 g

var phrasenum = parseInt(phrase[1].childNodes[1].innerText, 10);

我不确定你的实现出了什么问题。但是,如果parseInt的返回值似乎不正确,那么您可能应该尝试将基与字符串一起作为输入。e、 g

var phrasenum = parseInt(phrase[1].childNodes[1].innerText, 10);

使用parseInt有一些陷阱。也许你应该粘贴一些不正确的例子。但是,下面的例子应该能给你一些想法:

 // working examples
 parseInt("7"); // 7
 parseInt("8"); // 8
 parseInt("9"); // 9

 // oops ...
 parseInt("07"); // 7
 parseInt("08"); // 0
 parseInt("09"); // 0

 // should always give base
 parseInt("07", 10); // 7
 parseInt("08", 10); // 8
 parseInt("09", 10); // 9

此外,检查规范也会有所帮助:

使用parseInt存在一些缺陷。也许你应该粘贴一些不正确的例子。但是,下面的例子应该能给你一些想法:

 // working examples
 parseInt("7"); // 7
 parseInt("8"); // 8
 parseInt("9"); // 9

 // oops ...
 parseInt("07"); // 7
 parseInt("08"); // 0
 parseInt("09"); // 0

 // should always give base
 parseInt("07", 10); // 7
 parseInt("08", 10); // 8
 parseInt("09", 10); // 9

此外,它还应该有助于检查规范:

使用parseInt的一些其他陷阱:


有时,使用+运算符强制转换是一种更好的方法,因为无效的数字字符串将始终给出NaN,而parseInt则不是这种情况,如果字符串以一开头,它将始终返回一个数字。

使用parseInt的一些其他陷阱:

有时,使用+运算符强制转换是一种更好的方法,因为无效的数字字符串将始终给出NaN,而parseInt则不是这种情况,如果字符串以1开头,它将始终返回一个数字。

parseInt采用数字的文本表示形式,并将数字作为整数输出

你不想那样做

将代码更改为:

function swapFE(e) { 
   var phrase = e.srcElement;  

   alert("French Number = "+this.parent.number+"Phrase = "+phrase.childNodes[1]); 
} 
在前面的函数中,您可以设置短语[i].number=i;和短语[i].childNodes[1].onmousedown=函数{swapFEevent;}

这意味着childNode的父节点保存正在显示的短语的索引

如果此.parent.number无效,请尝试短语.number

更新 这就是我如何实现你想要的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <title>test page</title>
    <script>
        var english=[];
        english[0]="This hotel isn't far from the Eiffel Tower.";
        english[1]="What time does the train arrive?";
        english[2]="We have been waiting for the bus for one half-hour.";
        english[3]="This meal is delicious";
        english[4]="What day is she going to arrive?";
        english[5]="We have eleven minutes before the train leaves!";
        english[6]="Living in a foreign country is a good experience.";
        english[7]="Excuse me! I'm late!";
        english[8]="Is this taxi free?";
        english[9]="Be careful when you go down the steps.";

        var french=[];
        french[0]="Cet hôtel n'est pas loin de la Tour Eiffel.";
        french[1]="A quelle heure arrive le train?";
        french[2]="Nous attendons l'autobus depuis une demi-heure.";
        french[3]="Ce repas est délicieux";
        french[4]="Quel jour va-t-elle arriver?";
        french[5]="Nous avons onze minutes avant le départ du train!";
        french[6]="Habiter dans un pays étranger est une bonne expérience.";
        french[7]="Excusez-moi! Je suis en retard!";
        french[8]="Est-ce que ce taxi est libre?";
        french[9]="Faites attention quand vous descendez l'escalier.";

        function pageLoad()
        {
            var main = document.getElementById("main");
            for(var i = 0; i < french.length; ++i)
            {
                var p = document.createElement("p");
                p.number = i;
                var text = document.createTextNode(french[i]);
                p.appendChild(text);
                hookEvent(p, "mousedown", swapFE);
                main.appendChild(p);
            }
        }

        function swapFE()
        {
            alert("French Number = "+this.number+" Phrase = "+this.firstChild.nodeValue);
        }

        function hookEvent(element, eventName, callback)
        {
            if(typeof(element) == "string")
                element = document.getElementById(element);
            if(element == null)
                return;
            if(element.addEventListener)
            {
                if(eventName == 'mousewheel')
                    element.addEventListener('DOMMouseScroll', callback, false);  
                element.addEventListener(eventName, callback, false);
            }
            else if(element.attachEvent)
                element.attachEvent("on" + eventName, callback);
        }
    </script>
</head>
<body onload="pageLoad()">
    <div id="main">
    </div>
</body>
<html>
parseInt接受数字的文本表示形式,并将数字作为整数输出

你不想那样做

将代码更改为:

function swapFE(e) { 
   var phrase = e.srcElement;  

   alert("French Number = "+this.parent.number+"Phrase = "+phrase.childNodes[1]); 
} 
在前面的函数中,您可以设置短语[i].number=i;和短语[i].childNodes[1].onmousedown=函数{swapFEevent;}

这意味着childNode的父节点保存正在显示的短语的索引

如果此.parent.number无效,请尝试短语.number

更新 这就是我如何实现你想要的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <title>test page</title>
    <script>
        var english=[];
        english[0]="This hotel isn't far from the Eiffel Tower.";
        english[1]="What time does the train arrive?";
        english[2]="We have been waiting for the bus for one half-hour.";
        english[3]="This meal is delicious";
        english[4]="What day is she going to arrive?";
        english[5]="We have eleven minutes before the train leaves!";
        english[6]="Living in a foreign country is a good experience.";
        english[7]="Excuse me! I'm late!";
        english[8]="Is this taxi free?";
        english[9]="Be careful when you go down the steps.";

        var french=[];
        french[0]="Cet hôtel n'est pas loin de la Tour Eiffel.";
        french[1]="A quelle heure arrive le train?";
        french[2]="Nous attendons l'autobus depuis une demi-heure.";
        french[3]="Ce repas est délicieux";
        french[4]="Quel jour va-t-elle arriver?";
        french[5]="Nous avons onze minutes avant le départ du train!";
        french[6]="Habiter dans un pays étranger est une bonne expérience.";
        french[7]="Excusez-moi! Je suis en retard!";
        french[8]="Est-ce que ce taxi est libre?";
        french[9]="Faites attention quand vous descendez l'escalier.";

        function pageLoad()
        {
            var main = document.getElementById("main");
            for(var i = 0; i < french.length; ++i)
            {
                var p = document.createElement("p");
                p.number = i;
                var text = document.createTextNode(french[i]);
                p.appendChild(text);
                hookEvent(p, "mousedown", swapFE);
                main.appendChild(p);
            }
        }

        function swapFE()
        {
            alert("French Number = "+this.number+" Phrase = "+this.firstChild.nodeValue);
        }

        function hookEvent(element, eventName, callback)
        {
            if(typeof(element) == "string")
                element = document.getElementById(element);
            if(element == null)
                return;
            if(element.addEventListener)
            {
                if(eventName == 'mousewheel')
                    element.addEventListener('DOMMouseScroll', callback, false);  
                element.addEventListener(eventName, callback, false);
            }
            else if(element.attachEvent)
                element.attachEvent("on" + eventName, callback);
        }
    </script>
</head>
<body onload="pageLoad()">
    <div id="main">
    </div>
</body>
<html>

这是我想出的答案,它奏效了。参见var phrasenum。谢谢你们的帮助,伙计们

//this function changes the French phrase to an English phrase.
    function swapFE(e) {
           var phrase = e.srcElement; 
           //phrase.innerText = english[phrase.id];
           var parent = phrase.parentNode;
           //childNodes[0] is the number of the phrase +1 
           var idnum = parent.childNodes[0];
           //parseInt takes a textstring and extracts it to make a number. Then you will subtract 1 from the number.
           var phrasenum = parseInt(idnum.innerHTML)-1;
           phrase.innerText = english[phrasenum];


  }


function swapEF(e) {
       var phrase = e.srcElement; 
       //phrase.innerText = english[phrase.id];
       var parent = phrase.parentNode;
       var idnum = parent.childNodes[0];
       var phrasenum = parseInt(idnum.innerHTML)-1;
       phrase.innerText = french[phrasenum];

}

这是我想出的答案,它奏效了。参见var phrasenum。谢谢你们的帮助,伙计们

//this function changes the French phrase to an English phrase.
    function swapFE(e) {
           var phrase = e.srcElement; 
           //phrase.innerText = english[phrase.id];
           var parent = phrase.parentNode;
           //childNodes[0] is the number of the phrase +1 
           var idnum = parent.childNodes[0];
           //parseInt takes a textstring and extracts it to make a number. Then you will subtract 1 from the number.
           var phrasenum = parseInt(idnum.innerHTML)-1;
           phrase.innerText = english[phrasenum];


  }


function swapEF(e) {
       var phrase = e.srcElement; 
       //phrase.innerText = english[phrase.id];
       var parent = phrase.parentNode;
       var idnum = parent.childNodes[0];
       var phrasenum = parseInt(idnum.innerHTML)-1;
       phrase.innerText = french[phrasenum];

}


这看起来像是在尝试将法语数字翻译成英语。据我所知,法语数字24是24,不需要翻译。你到底想完成什么?你能举一个输入数据的例子吗?数字是什么样子的?有千个分隔符吗?@slebetman和@CMS-我在上面的问题中添加了法语和英语数组,看看这是否有帮助。@slebetman-我不想把法语的字面数字翻译成英语,我只是想用onmousedown将法语中的短语翻译成英语,我还在努力。我试图使用parseInt从短语对象中获取短语编号0-9。短语编号不存储在段落文本中。parseInt帮不了你。这看起来像是在尝试将法语数字翻译成英语。据我所知,法语数字24是24,不需要翻译。你到底想完成什么?你能举一个输入数据的例子吗?数字是什么样子的?有千个分隔符吗?@slebetman和@CMS-我在上面的问题中添加了法语和英语数组,看看这是否有帮助。@slebetman-我不想把法语的字面数字翻译成英语,我只是想用onmousedown将法语中的短语翻译成英语,我还在努力。我试图使用parseInt从短语对象中获取短语编号0-9。短语编号不存储在段落文本中。parseInt帮不了你。我不认为07是一个八进制数。@pulse,你什么意思?我的天啊。。。上面只表示8和9。我不认为07是一个八进制数。@pulse,你是什么意思?我的天啊。。。上面的意思是只给8和9人。@shinkou-我试过了,但没用。我明白你的意思,包括一个基地。无论如何,谢谢。是的,你应该一直使用基本无线电
ix与parseInt一起使用,或者它会根据第一个数字将数字误解为二进制、八进制等等。@shinkou-我试过了,但没有成功。我明白你的意思,包括一个基地。无论如何,谢谢。是的,你应该总是用基数来表示parseInt,否则它会根据第一个数字将数字误解为二进制、八进制等等。@Matt Ellen-我需要使用parseInt函数来进行赋值。谢谢你的输入。@Matt Ellen-我需要使用parseInt函数来完成我的作业。谢谢你的意见。