簡體   English   中英

HTML5屬性操作:Vanilla JS與jQuery

[英]HTML5 Attribute Manipulation: Vanilla JS vs. jQuery

為什么在原始JS和jQuery中更改元素的屬性值有時會無法正常工作? 一種情況是我創建的實驗,在該實驗中,每當單擊“顯示密碼”按鈕時,應該將密碼字段的type屬性值更改為text如果為password ,反之亦然。 它在Vanilla JS中成功運行,但在jQuery中卻沒有。 在jQuery中,屬性值更改為text ,但是當我想將其更改回password ,它將不起作用。 為什么會發生這樣的問題?

香草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'))沒有詢問type屬性是否為'password'。 它設置type = password並將jQuery對象返回到if語句。

當.attr()僅與一個參數一起使用時 ,它將從所選元素中獲取該屬性,因此可以使用$("#password").attr("type") == "password"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM