【发布时间】:2011-02-04 12:38:24
【问题描述】:
<script type="text/javascript">
function addbutton() {
var o = document.getElementsByTagName('li');
for(var i=0;i<o.length;i++)
{
var keyword= o[i].innerHTML;
var regobj = /<a (.*)>(.*)<(.)a>/g;
keyword = keyword.replace(new RegExp("<br>", "g")," ");
keyword = keyword.replace(regobj,"$2");
keyword = keyword.substring(0,100);
var str = "<br>"+ "<a class='but' target='blank' ";
str += "href=\"http://www.google.com.tr/search?q=";
str += decodeURIComponent(keyword);
str += "\">ara</a>";
o[i].innerHTML = o[i].innerHTML + str;
}
}
</script>
addbutton() 在 li 标签的末尾添加了一个搜索按钮,但是当我运行时,它只循环了 43 次。所以它为前 43 个 li 标签添加了搜索按钮。你的想法是什么,为什么循环被破坏了?
编辑: 更多信息,
-我在一个包含 131 个 li 标签的页面上尝试了函数。并且功能适用于前 43 li 标签,
-我试过google chrome和firefox,结果都一样。
我试图提醒(o.length)。没问题,返回真数,“131”。
【问题讨论】:
-
它是不是在某个特定的浏览器中不起作用?因为 getElementsByTag 名称仅适用于选定的浏览器。
-
那么,你有多少个
li?输出o.length会得到什么?你什么时候执行这个函数?` -
+1 我认为我们需要一些调试信息。
-
@Wolfy:如果不支持
getElementsByTagName,那么前 43 次将无法正常工作。 :-) @ocanal:在这个问题中绝对没有足够的信息来真正回答它...... -
我敢打赌,第 44 项的字符串中没有 100 个字符,
keyword = keyword.substring(0,100);除外。
标签: javascript loops for-loop