![](/img/trans.png)
[英]What is the correct way to do .has(), .get() and .set() for javascript Map() used in an ExpressJS server?
[英]in javascript do, what is correct way to get FORM name?
在表單中, form.name
通常會返回表單的名稱,但是如果表單中包含名為“ name”的元素,則不會返回
var f = document.createElement('form'); f.hasAttribute('name'); // false f.name = 'abc'; f.getAttribute('name'); // "abc" var i = document.createElement('input'); i.name = 'name'; f.appendChild(i); f.name; // HTMLInputItem f.getAttribute('name') // "abc" f.name = 'efg'; f.name; // HTMLInputItem f.getAttribute('name') // "efg"
通過此練習,似乎FORM的name
屬性確實是其屬性。
這種行為與value
截然不同
var i1 = document.createElement('input'); var i2 = document.createElement('input'); // test value i1.setAttribute('value','value1'); i1.getAttribute('value'); // value1 i1.value = 'value2'; i1.getAttribute('value'); // value1 i2.value = 'value1'; i2.hasAttribute('value') // false // test name i.setAttribute('name','name1'); i.getAttribute('name'); // name1 i.name = 'name2'; i.getAttribute('name'); // name2 i2.name = 'name1'; i2.hasAttribute('name') // true
value
使用其屬性作為默認值,而form.name
是一種方法,該方法首先嘗試使用具有element.name='name'
,然后使用attribute('name')
關於何時以及如何從DOMElement object
訪問那些“特殊屬性”存在困惑。 如.name
, .value
, .tabIndex
等。直接對象訪問來自過去,並且在所有主流瀏覽器中都可以正常工作。 所以基本上沒有錯,通過調用
form.name
但是正如您提到的,如果有命名的子節點,可能會遇到麻煩。 W3C
建議始終使用.setAttribute()
/ .getAttribute()
方法。 在這種特殊情況下,它可能是最好的建議。 在其他情況下,我仍然會選擇直接訪問,因為這樣寫起來少得多,對我也很方便。
如果您想獲得表格名稱
var names [] = document.getElementsByTagName('form')。getAttribute('name');
(要么)
var name = document.getElementById('form_id')。getAttribute('name');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.