0

我制作了一个小书签,应该突出显示网页上的密码和用户名框。它找到密码框,并且似乎正在找到它之前的文本框,但随后它停止工作。这是我的代码:

<html>
<head>
</head>
<body>
<a href="javascript:var boxes= $(':text, :password');var selectionBox = $(':password'); selectionBox.css('background','red');for(var i = 0; i < boxes.length;i++){alert('loop');if(boxes[i] == selectionBox[0]){alert('Username box found');boxes[i-1].css('background','blue');alert('Success!');}}">Password box highlighter</a>
</body>

我收到一个警告框说“循环”几次,然后是“找到用户名框”,但随后它在下一行停止工作,并且没有“成功!” 警报框。有人知道我做错了什么吗?谢谢。

编辑:这是展开的代码:

var boxes= $(':text, :password');
var selectionBox = $(':password');
selectionBox.css('background','red');
for(var i = 0; i < boxes.length;i++){
 alert('loop');
 if(boxes[i] == selectionBox[0]){
  alert('Username box found');
  boxes[i-1].css('background','blue');
  alert('Success!');
 }
}
4

1 回答 1

2

您正在使用boxes[i-1](与 using 相同.get(i-1))从 jQuery 集合中获取 DOM 元素。尝试使用.eq()

boxes.eq(i-1).css('background','blue');

演示:http: //jsfiddle.net/HsDCs/3/

如果您检查浏览器的控制台,您会发现它在抱怨这css不是该元素的属性/方法。

参考:

于 2013-05-15T17:05:43.253 回答