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 要素を取得します。
  • .textboxjQuery オブジェクトではなく、DOM 要素でのみ機能します。一致し[name='textbox']ます。
  • .valueは jQuery オブジェクトではないため.val()、の代わりに使用する必要があります。.textbox

正直なところ、これが単に 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 に答える