JavaScript 中的基本排序
Basic sequencing in JavaScript
本文关键字:排序 JavaScript 更新时间:2023-09-26
我是 JavaScript 的新手,所以请耐心等待...
我有一个链接到我的 HTML 的外部 JavaScript 文档(在 HTML 文档的头部调用)。
在我的 JavaScript 文档中,我在 window.onload
事件上调用了两个函数:
window.onload = function() {
selected_state();
viewer();
};
function selected_state() {
var titleAr = document.getElementsByTagName("title");
var aAr = document.getElementsByTagName("a");
// Take the first element of title array. Check if it matches
// the first element of link array.
for (i = 0; i <= titleAr.length; i++) {
for (l = 0; l <= aAr.length; l++) {
if (titleAr[i].innerHTML === aAr[l].innerHTML) {
aAr[l].style.color = "#C33";
break;
}
}
}
};
function viewer() {
var imgAr = document.getElementsByTagName("img");
for (var i = 0; i < imgAr.length; i++) {
imgAr[i].onmouseover = function() {
this.style.border = "1px solid #CCC";
}
}
};
第一个函数运行没有问题,但第二个函数不运行。如果我切换它们,所以viewer()
是第一位的,那么selected_state()
不会执行。我知道这个问题可能是非常简单的逻辑明智......有接受者吗?
当内部循环在外循环的第一次运行时完成时,看起来selected_state
正在中断;您的循环条件不正确(必须抛出类似"索引越界"之类的内容)。
数组使用从零开始的索引:
改变:
for (i=0; i <= titleAr.length; i++) {
for (l=0; l <= aAr.length; l++) {
自:
for (i=0; i < titleAr.length; i++) {
for (l=0; l < aAr.length; l++) {
唯一的解释是,这两个函数在执行任何使您认为它们运行没有麻烦的事情后都会引发异常。除非他们投掷异常,否则首先第一个将运行,然后第二个将运行。您没有遗漏任何基本的逻辑错误。但是,如果第一个函数抛出异常,则会将控制权转移到下一个异常捕获帧,该帧(如果您尚未通过 try...catch
定义一个)将位于代码之外。
最好的办法是使用一个体面的调试器来找出发生了什么。所有主流浏览器现在都内置了不错的调试器。在 IE 和 Chrome 中,按 F12 打开调试器;在其他浏览器中,查看菜单。调试器将有一个"控制台",用于报告错误。还可以设置断点并逐条演练代码语句。
(现在您已经发布了代码进行编辑。
请注意,您在selected_state
中的代码是隐式全局的恐怖的牺牲品。您需要声明i
并与var
l
。
相关文章:
- sort而不是排序javascript
- 我们如何自定义排序JavaScript对象键
- 以相同的方式对多个数组进行排序Javascript
- 重新排序 JavaScript 数组
- 比较和排序 JavaScript 数组
- 按特定顺序对数组进行排序 javascript
- 如何根据数组对对象进行排序 - javascript
- 组合然后排序Javascript数组.得到不可预测的结果
- 如何根据另一个数组的排序方式对一个数组进行排序?(Javascript)
- 如何更好地重新排序javascript代码
- 按对象属性排序javascript数组
- 递减While循环排序Javascript
- 累积求和/排序 JavaScript
- 按字母顺序排序javascript填充的选择列表
- 嵌套对象JSON排序JavaScript
- 排序javascript数组,使空白值总是在底部
- 基于任意长度的属性排序JavaScript对象数组
- 冒泡排序Javascript
- 按键值递归排序JavaScript对象
- 如何按日期排序javascript数组