HTML5属性操作:纯JS vs. jQuery
HTML5 Attribute Manipulation: Vanilla JS vs. jQuery
为什么改变元素的属性值在香草JS和jQuery有时不工作相似?一个场景是我创建的实验,每当点击"显示密码"按钮时,密码字段的type
属性值应该在password
时变为text
,反之亦然。它在普通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,并向if语句返回一个jQuery对象。
当.attr()仅与一个参数一起使用时,它从所选元素获取该属性,因此可以使用$("#password").attr("type") == "password"
。
相关文章:
- Js.erb VS按钮标记-不'不起作用.为什么?
- 开发第三方小部件-Angular vs jQuery vs普通的旧JS
- JS vs JSON for config in Node js
- vanilla js vs jQuery ajax call
- Node.js vs Javascript Closure
- marionette.js vs Backbone updating DOM
- 配置文件:JS vs INI
- Hello.js vs Passport.js?
- derby.js vs capsule/thoonk?
- JavaScript 2D rendering library [pixie.js vs three.js]
- 将HTML推送到网页(JS VS PHP)
- HTML5属性操作:纯JS vs. jQuery
- raphael.js vs paper.js
- 它会在这种情况下生成100个不同的实例变量吗(JS vs c++) ?
- Blanket.js vs Istanbul-js vs JSCover
- jbgallery vs supersized js vs flash
- Node.js vs Ajax在web服务器上上传文件
- SceneJS vs Three.JS vs others
- Backbone.js Vs Knockout.js
- Mustache.js vs dust.js:我如何瞄准我的学校数组