【问题标题】:Correct element.getElementsByTagName() implementation正确的 element.getElementsByTagName() 实现
【发布时间】:2010-10-05 18:34:48
【问题描述】:

//编辑我的问题与其他问题有关,我认为实现不正确但它确实有效,感谢您的确认。

查看 jQuery 和prototypejs,似乎找不到他们在元素(不是 document.getElementsByTagName)上实现 getElementsByTagName 的方式。

这是我的测试 html:

<div id="something" style="margin: 10px 10px 10px 15px; overflow: auto; position: relative; height: 200px;">
    <div style="float: left; width: 180px; font-size: 10px; margin-bottom: 4px;">
        <label for="label_50">
            <img style="vertical-align: middle; margin-right: 3px;" src="http://web1.wow.com/i/i_ask_sm.gif"/>
            <a style="color: rgb(0, 0, 0); text-decoration: underline;" href="http://myjeeves.ask.com/mysearch/BookmarkIt?v=1.2&t=webpages&url=[URL]&title=[TITLE]" post_link="http://myjeeves.ask.com/mysearch/BookmarkIt?v=1.2&t=webpages&url=[URL]&title=[TITLE]" rel="external" target="_blank">Ask</a>
        </label>
    </div>
</div>

还有我现在的js:

document.getElementById("something").getElementsByTagName("a");

我正在寻找正确的实现,因为 IE 似乎无法正常使用它,而且我无法使用框架

【问题讨论】:

  • 您能否更详细地解释一下 getElementsByTagName 在 IE 中为何不适合您?
  • 这个 应该 在 IE 中工作得很好,只要:(1) 在这个 HTML 之前的 DOM 中没有任何元素,且 NAME 属性设置为 "某事“......而你并没有试图找到 [param] 元素。
  • @scunliffe:我想做的是:someObject.property = document.getElementById("something").getElementsByTagName("a");这在 IE 中不起作用,它没有复制生成的数组,所以我必须循环遍历它并将其添加到本地数组,然后将其复制过来,奇怪的东西。

标签: javascript html dom


【解决方案1】:
<div id="something" style="margin: 10px 10px 10px 15px; overflow: auto; position: relative; height: 200px;">
    <div style="float: left; width: 180px; font-size: 10px; margin-bottom: 4px;">
        <label for="label_50">
            <img style="vertical-align: middle; margin-right: 3px;" src="http://web1.wow.com/i/i_ask_sm.gif"/>
            <a style="color: rgb(0, 0, 0); text-decoration: underline;" href="http://myjeeves.ask.com/mysearch/BookmarkIt?v=1.2&t=webpages&url=[URL]&title=[TITLE]" post_link="http://myjeeves.ask.com/mysearch/BookmarkIt?v=1.2&t=webpages&url=[URL]&title=[TITLE]" rel="external" target="_blank">Ask</a>
        </label>
    </div>
</div>
<pre>
<script type="text/javascript">
var lnks = document.getElementById("something").getElementsByTagName("a");
for (var ii = 0; ii < lnks.length; ++ii) {
    document.writeln(lnks[ii].href);
}
</script>
</pre>

在 IE6、IE7 和 IE8RC1 中输出:

http://myjeeves.ask.com/mysearch/BookmarkIt?v=1.2&t=webpages&url=[URL]&title=[TITLE]

你的例子没有真正说明问题吗?

【讨论】:

  • 我刚刚意识到问题与其他问题有关,将更新我的问题。
猜你喜欢
  • 2010-10-15
  • 2018-02-10
  • 2011-10-18
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多