如何从HTML集合中提取名称?

时间:2015-10-22 12:39:19

标签: javascript c# html asp.net aspxgridview

这是javascript的一步。

enter image description here

我有一个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);
}

1 个答案:

答案 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);
};