vanilla JSとjQueryで要素の属性値を変更すると、同じように動作しないことがありますか? 1つのシナリオは私が作成した実験で、「パスワードを表示」ボタンがクリックされるたびに、パスワードフィールドのtype
属性の値は、password
のときtext
に変更されるはずです。バニラJSでは正常に動作しましたが、jQueryではうまく動作しませんでした。 jQueryでは、属性値がtext
に変更されますが、password
に戻したい場合は機能しません。なぜこのような問題が起こるのですか?HTML5属性の操作:Vanilla JSとjQueryの比較
バニラJS
document.querySelector('.show-password').onclick = function() {
if(document.querySelector('#password').type == 'password') {
document.querySelector('#password').type = 'text';
} else {
document.querySelector('#password').type = 'password';
}
}
jQueryが
$('.show-password').click(function() {
if($('#password').attr('type', 'password')) {
$('#password').attr('type', 'text');
} else {
$('#password').attr('type', 'password');
}
});
これは 'if($( '#password')。attr( 'type')== 'password')'です。 [Rubberduck-debug](http://www.rubberduckdebugging.com/)あなたのコード。 7行のコードが失敗する理由はありません。 – Xufox