2012-10-20 191 views
2

項目我在網絡上的一些例子,人們傳遞形式的函數,然後他們只使用該項目的ID來訪問它像發現:jQuery的 - 訪問形式通過功能

<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> 

但螢火告訴我,frm.textbox是不確定的......然後我在尋找它爲什麼上不了網工作,但我沒有發現任何解釋這個選項,以及如何使用它。 任何線索?

+0

如果你有jQuery,爲什麼會用這個醜陋? – kapa

回答

3

你將不得不修改JS略,使這項工作:

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

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

  • $(frm)返回選擇相匹配的元素。
  • [0]獲取實際的DOM元素。
  • .textbox作品的DOM元素而已,不是jQuery的對象。它匹配[name='textbox']。以被用來代替.val()
  • .value需要,.textbox不是jQuery對象。

老實說,我實在不明白這是怎麼比只使用jQuery的好:

$('#frm input[name="textbox"]').val(); 
+0

+1的解釋 –

+1

+1的正常jQuery代碼:) – kapa

+0

@bažmegakapa同意。 + 1 - 即使沒有:-)請參閱修訂:-) –

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")); 
+0

這是不是與jQuery做正常的方式,但vanillaJS方法是很好的參考 –

+0

JQuery的東西,可能會導致混亂 - 我只是想保持它簡單明瞭 – codingbiz