jQuerys prop()方法返回错误的id

时间:2016-11-17 22:31:28

标签: jquery forms input prop

当我输入名称=" id"在一个表单中,prop(' id')方法返回输入元素而不是id作为字符串:

HTML

<form id="testform">
    <input name="id">
</form>

JS

var $form = $('#testform');

var wrongId = $form.prop('id');
var correctId = $form.attr('id');

alert(wrongId); // alerts the html input element
alert(correctId); // alerts the id testform

任何人都可以向我解释这个吗?

我准备了一个小提琴: https://jsfiddle.net/zosu17se/

谢谢,最好

1 个答案:

答案 0 :(得分:5)

这是因为您已将输入id命名为输入,名称或ID,选择和其他&#34;表单元素&#34;作为表单的属性附加到父表单以便于访问,因此form.id是输入,而不是元素id。

命名输入id或您可能想要访问的任何其他属性,问题就解决了。

由此引起的奇怪代码示例

&#13;
&#13;
var form = window.test; // note that element ID's are also attached to the global scope

form.id.value = 'test';
form.value.value = 'test more';
form.selectedIndex.value = '2';
&#13;
<form id="test">
  <input name="id">
  <input name="value">
  
  <select id="selectedIndex">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</form>
&#13;
&#13;
&#13;