2015-11-03 50 views
0

input元素不同,div元素只有"global attributes"。我有一個功能,我在localStorage的獲取元素和存儲其數據與表單的ID一起,它屬於(這樣我就可以存儲在相同的存儲空間多頁/表格):如何獲得擁有div的表單?

function store(what) { 
    var F = what.form; 
    if (what.id.substr(0,3) == 'div') { 
     localStorage.setItem(F.id+'.'+what.id,what.innerHTML); 
    } else 
     localStorage.setItem(F.id+'.'+what.name,what.value); 
    } 
} 

問題是,因爲divs沒有form屬性,有沒有其他方法可以單獨從元素中獲取它?

回答

4

假設你的意思是「包含」,那麼只需遞歸檢查element.parentNode,直到找到表單元素或parentNodenull

function ancestorForm(element) { 
    if (element === null || element.tagName.toLowerCase() === "form") { 
     return element; 
    } else { 
     return ancestorForm(element.parentNode); 
    } 
}