为啥 jquery select.val() 在 AngularJS 环境中返回类型:值?

Posted

技术标签:

【中文标题】为啥 jquery select.val() 在 AngularJS 环境中返回类型:值?【英文标题】:Why jquery select.val() returning type:value in an AngularJS environment?为什么 jquery select.val() 在 AngularJS 环境中返回类型:值? 【发布时间】:2020-05-16 02:30:16 【问题描述】:

见这个例子:https://stackblitz.com/edit/angularjs-xnrrot?file=home%2Fhome.html 当我更改下拉列表时,该值将显示为 number:1。 当我在 home.html 中删除 ng-model 时,显示的值将不带“number:”。 请解释一下好吗?

【问题讨论】:

【参考方案1】:

发生这种情况是因为 ng-model 返回带有 数据类型 的值。因此,当您添加 ng-model 时,您将获得 number:1 例如

<select id="s1" ng-model="$ctrl.personId">
  <option ng-repeat="option in $ctrl.persons" ng-value="option.name">option.name</option>
</select>
<div id="output"></div>

在上面的例子中,如果你给 ng-value="option.name" 而不是 ng-value="option.id" 那么你会得到输出 string:Alice 。 发生这种情况是因为名称的数据类型是字符串。同样,当你设置 ng-value="option.id" 时,它会给你 number:1 因为 ID 的数据类型是 number

希望您对解释感到满意。

【讨论】:

hm,但自 Angular js 1.5.8 以来,这种情况发生了变化。当我在 package.json 中将版本更改为 1.5.8 时,它按预期工作(没有数据类型)。

以上是关于为啥 jquery select.val() 在 AngularJS 环境中返回类型:值?的主要内容,如果未能解决你的问题,请参考以下文章

jquery 怎样获取select多选下拉框所有选项的值

jQuery取得select选中的值

jQuery 增加 删除 修改select option

jquery 操作select,checkbox,radio (整理)

jquery获取select选中项的文本

“jquery”怎么获取“ select option ”的值?