Bookmarklet没有找到输入框

时间:2013-05-15 16:57:11

标签: javascript bookmarklet

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

<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!');
 }
}

1 个答案:

答案 0 :(得分:2)

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

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

DEMO: http://jsfiddle.net/HsDCs/3/

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

参考文献: