Javascript 数字解析在控制台中工作,但在脚本中不工作

Javascript 数字解析在控制台中工作,但在脚本中不工作,javascript,jquery,dom,Javascript,Jquery,Dom,这是我的简单函数,它在元素上被调用为onclick=“incrementValue(this)” console.log行在控制台中打印出一个NaN 但是,当我在控制台中输入此行时: choicesleet.innerHTML=Number(choicesleet.innerHTML)-1 出现预期的行为 有什么想法吗?innerHTML在这里不起作用,因为您在jQuery对象上调用了它 使用text()而不是innerHTML: choicesLeft.text( Number(choices

这是我的简单函数,它在元素上被调用为
onclick=“incrementValue(this)”

console.log
行在控制台中打印出一个NaN

但是,当我在控制台中输入此行时:

choicesleet.innerHTML=Number(choicesleet.innerHTML)-1

出现预期的行为


有什么想法吗?

innerHTML
在这里不起作用,因为您在jQuery对象上调用了它

使用
text()
而不是
innerHTML

choicesLeft.text( Number(choicesLeft.text()) - 1 );
希望这有帮助

函数递增值(){
var choicesleet=jQuery(“choicesleet”);
choicesleet.text(数字(choicesleet.text())+1);
};

增量


0
您的代码包含几个问题:

function incrementValue(plusElement) {
  var choicesLeft = jQuery("#choicesLeft");

  choicesLeft.innerHTML = Number(choicesLeft.innerHTML) - 1;
  console.log(mealsLeft.innerHTML);
};
首先使用一个从未使用过的参数pluseElement

其次,将javascript与jquery混合使用

choicesLeft是一个jquery对象,您应该使用jquery api与之交互

所以你应该吃点东西:

var choicesLeftNum = Number(choichesLeft.text());

或 var choicesLeftNum=parseInt(choicesleft.text(),10)

比你能减少的还要多:

choichesLeft.text(choicesLeftNum - 1);

您应该使用text()而不是html(),因为您不需要任何html内容。您对全文没有意见。

What's
mealsLeft
?choicesLeft是一个jQuery对象,它没有innerHTML。我非常怀疑这在控制台中会起作用。使用
.text()
而不是
.innerHTML
@epascarello它在控制台中仍然是一个jQuery对象吗?如果您在控制台中使用$,它不是jQuery,可能是chrome提供的querySelector的别名。text()建议就足够了。将接受您可以停止编辑lol.PS,因为您在
Hoep
中插入了打字错误。
var choicesLeftNum = +choichesLeft.text();
choichesLeft.text(choicesLeftNum - 1);