【发布时间】:2015-05-23 12:35:03
【问题描述】:
用于选择元素的 jQuery .val() 是否只返回文本而不返回数字? 当你需要进行值比较时,你知道有问题。
我知道如何使用parseInt() 或仅与字符串进行比较或根本不使用 jQuery 来解决这个问题,但我不知道这是一个错误还是 jQuery 的工作方式。
来自 jQuery 文档
> 值: 类型:字符串或数字或数组
与每个匹配元素的值相对应的文本字符串、数字或字符串数组,以设置为选中/选中。
.val() 返回:字符串或数字或数组
// Put any number here 0 is the default selected value
var comparison_value = 0;
$('button').click(function () {
$('div#typeof').text(typeof ($('select').val()));
if ($('select').val() === comparison_value) {
$('div#comparison').text('You just passed a test');
} else {
$('div#comparison').text('You just failed a test');
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select>
<option value="0" selected>Select Something</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
<button>Gimme back my selection</button>
<div id='typeof'></div>
<div id='comparison'></div>
【问题讨论】:
-
一个元素的值是always一个字符串,它绝不是数字类型。它与jQuery无关,它是规范中定义的方式。
-
您发布了有关 setter
val()方法的报价 -
^^ val(value) - 二传手。
-
@A.Wolff:这也是我想说的,但是 getter 的文档也说它会返回一个字符串、数字或数组。所以这并不重要。
-
@FelixKling True(我错过了)即使我不确定在哪种情况下它会返回一个数字。然后我读了 Karl-Johan 的回答,可以解释一下。
标签: javascript jquery