0

Web ページのパスワードとユーザー名のボックスを強調表示するブックマークレットを作成しました。パスワードボックスが見つかり、その前にあるテキストボックスを見つけているように見えますが、その後動作を停止します。これが私のコードです:

<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

jQuery コレクションから DOM 要素を取得するためにboxes[i-1]( を使用するのと同じです) を使用しています。.get(i-1)使ってみてください.eq():

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

デモ: http://jsfiddle.net/HsDCs/3/

cssブラウザーのコンソールを確認すると、その要素のプロパティ/メソッドではないと不平を言っていることがわかります。

参考文献:

于 2013-05-15T17:05:43.253 に答える