2015-11-03 27 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); 
    } 
}