这是javascript的一步。
我有一个HTMLCollection,我想循环遍历它并使用FileUploadControl的ID提取对象。我该怎么做?
这是我的代码,我该如何处理?
function uploadImage(lnk)
{
var row = lnk.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
var abc = row.cells[2].getElementsByTagName("input");
var arr = [].slice.call(abc);
}
答案 0 :(得分:1)
这样就可以了:
abc.namedItem('FileUploadControl')
但请注意:
当存在多个浏览器时,不同浏览器的行为会有所不同 匹配用作索引的字符串的元素(或namedItem的 参数)。 Firefox 8的行为与DOM 2和DOM4中指定的一样,返回 第一个匹配元素。 WebKit浏览器和Internet Explorer中 这种情况返回另一个HTMLCollection,Opera返回一个NodeList 所有匹配元素。
来自here。
这意味着如果在你的标记中你有这样的东西:
<div id='id'>Foo</div>
<div id='id'>Bar</div>
执行以下代码时,浏览器的行为会有所不同:
document.getElementsByTagName('div').namedItem('id')`
Firefox会返回HTMLElement,而IE会返回另一个HTMLCollection。
要解决这种不一致问题,可以应用函数返回同一个对象。
retElement( abc.namedItem('id') );
这可能是这样的:
var retElement = function(oElem) {
//Firefox
if (oElem instanceof window.HTMLElement)
return oElem;
//IE and WebKit
if (oElem instanceof window.HTMLCollection)
return oElem.item(0);
};