Javascript 需要关于parseInt()函数的帮助吗
如何使用parseInt函数从短语对象获取短语编号?我试图在下面的var phrasenum中的swapFE函数中创建该函数,但没有成功。我认为我的价值观是错误的。我应该在那里放什么?任何帮助都将不胜感激。提前谢谢!以下是要使用的法语短语编号1-10或JavaScript 0-9以及法语和英语短语: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]=
> 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函数来完成我的作业。谢谢你的意见。