gpt4 book ai didi

javascript - parseInt 不起作用

转载 作者:行者123 更新时间:2023-11-30 07:04:54 25 4
gpt4 key购买 nike

在我当前的源代码中,文本框的值是 1。当我尝试 alert(isNaN(obj.text()) 它返回预期的 false 但在我编写 alert(a); 时在 parseInt 之后返回 它返回 NaN

minus.click(function () {
var a = 1; if (!isNaN(obj.text())) a = parseInt(obj.text());
if (a > 1) a -= 1; obj.text(a);
});

问题是什么?

编辑:这是完整的代码:

<input type="text" class="basket-txt" value="1" />


jQuery.fn.basket = function (options) {
var defaults = {
}
options = jQuery.extend(defaults, options);
this.each(function () {
var $this = $(this);
$this.height(32).css({ 'line-height': '32px', 'font-weight': 'bold', 'width':'40px', 'text-align':'center', });
var tbl = $('<table border="0" style="border-spacing:0px;float:left;">').appendTo($this.parent());
var tr1 = $('<tr>').appendTo(tbl);
var plus = $('<div class="basket-plus">');
$('<td>').append(plus).appendTo(tr1);
$('<td>').append($this).appendTo(tr1);
var minus = $('<div class="basket-minus">');
$('<td>').append(minus).appendTo(tr1);
var tr2 = $('<tr>').appendTo(tbl);
$('<td>').appendTo(tr2);
$('<td>').appendTo(tr2).append($('<div>').addClass('add-to-basket'));
$('<td>').appendTo(tr2);
$this.keypress(function (e) { if (e.which < 48 || e.which > 57) e.preventDefault(); });
minus.click(function () {

var a = 1; if (!isNaN($this.text())) a = parseInt($this.text());
if (a > 1) a -= 1; $this.text(a);
});
plus.click(function () {
var a = 1; if (!isNaN($this.text())) a = parseInt($this.text());
if (a < 1000000) a += 1; $this.text(a);
});
});
}

实际上我知道我可以更正代码并且它会起作用我关心的是理解为什么 isNaN 返回 false 但 parseInt 返回 NaN

最佳答案

jQuery text() 方法将获取一个元素的所有后代文本节点并将它们组合成一个字符串。

input 元素不能有任何类型的后代节点。它的当前值通过 value 属性公开,您可以使用 jQuery 中的 val() 方法读取该属性。

你不应该在没有基数的情况下使用 parseInt,尤其是在自由格式输入的情况下。您可能会得到八进制或十六进制数据而不是十进制数据。

parseInt($this.val(), 10)

关于javascript - parseInt 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20032666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com