asp.net如何将名称提取 HTML 集合?

发布时间: 2017/3/26 2:20:25
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

这里是通过 javascript 代码的步骤。

enter image description here

我有 HTMLCollection,我想要它执行循环语句和提取具有 ID FileUploadControl 的对象。我是如何做到的?

这里是我的代码,如何进行?

    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:

这将做到︰

abc.namedItem('FileUploadControl') 

但要注意的︰

当有多个元素匹配的字符串作为索引 (或 namedItem 的参数) 时,不同的浏览器的行为不同。火狐浏览器 8 表现为指定 DOM 2 和 DOM4,返回第一个匹配元素。WebKit 浏览器和互联网资源管理器在这种情况下返回另一个 HTMLCollection 和歌剧返回所有匹配的元素节点。

这里

这意味着,如果您在您的标记这样的事情︰

<div id='id'>Foo</div>
<div id='id'>Bar</div>

执行下面的代码时,浏览器会以不同的方式表现︰

document.getElementsByTagName('div').namedItem('id')`

火狐浏览器将返回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);
};
官方微信
官方QQ群
31647020