2

我在网上的一些示例中发现人们将表单传递给函数,然后他们只使用项目的 id 来访问它,如下所示:

<form id="frm">
<input type="text" id="textbox" name="textbox" value="some value" />
</form>

<script>
console.log(getelementval("#frm"));

function getelementval(frm) {
return frm.textbox.val();
}
</script>

但是 FireBug 告诉我 frm.textbox 是未定义的......然后我正在搜索为什么它在网络上不起作用但我没有找到任何解释这个选项以及如何使用它的东西。有什么线索吗?

4

2 回答 2

3

您将不得不稍微修改 JS 以使其工作:

function getelementval(frm) {
    return $(frm)[0].textbox.value;
}

演示:http: //jsfiddle.net/gdZEK/2/

  • $(frm)返回与选择器匹配的元素。
  • [0]获取实际的 DOM 元素。
  • .textbox仅适用于 DOM 元素,不适用于 jQuery 对象。它匹配[name='textbox']
  • .value需要使用而不是.val(),因为.textbox它不是 jQuery 对象。

老实说,我真的不明白这比仅使用 jQuery 更好:

$('#frm input[name="textbox"]').val();
于 2012-10-20T00:13:20.227 回答
1

这是纯 JavaScript 而不是 JQuery

function getelementval(frm) {
   var f = document.getElementById(frm);
   return f.textbox.value;
}

console.log(getelementval("frm"));

jQuery版本

function getelementval(frm) {
   var f = $(frm)[0];
   return f.textbox.value;
}

console.log(getelementval("#frm"));
于 2012-10-20T00:16:07.243 回答