[英]how to convert JavaScript code document.querySelector into Angular9?
[英]How to code document.querySelector('.class').doSomeThing() with native JavaScript
如何使用本机JavaScript(例如jQuery document.querySelector('.class').doSomeThing()
编码document.querySelector('.class').doSomeThing()
exp: $('.class').doSomeThing();
Element.protototype.doSomething = function( passedFunction ){
passedFunction.call( this );
return this;
}
要同时使用querySelectorAll
,您还需要将该函数分配给NodeList.prototype.doSomething
。
实现Element
对象的prototype
。
Element.prototype.doSomething = function(){
// do something
}
如果我理解正确:
<!DOCTYPE html>
<html lang="en">
<head>
<title> Bla! </title>
<script type='text/javascript'>
function SayB1(data) {
alert (data);
}
function Init() {
var buttons = document.getElementsByClassName('button1');
for (var i in buttons) {
buttons[i].onclick = function() {
SayB1(this.innerHTML);
};
}
}
</script>
</head>
<body onload='Init();'>
<button class='button1'> B1 -1 </button>
<button class='button1'> B1 -2 </button>
<button class='button2'> B2 -1 </button>
<button class='button2'> B2 -2 </button>
<button class='button1'> B1 -3 </button>
</body>
</html>
有多种方法可以做类似jQuery的jQuery。 这是我喜欢的一种方式:
(function(scope, name, undefined){
scope[name] = function(selector){
return new Plugin(selector);
}
function Plugin(selector){
buildArrayLike(this, selector)
}
function buildArrayLike(obj, selector){
var el = document.querySelectorAll(selector);
for(var c = 0; c < el.length; c++) obj[c] = el[c];
obj.length = el.length;
}
Plugin.prototype = {
constructor : Plugin,
method : function(){
alert(this.length);
return this; //For chaining;
}
}
})(window, '$')
console.log($('div'));
$('div').method();
小提琴: http : //jsfiddle.net/Rw5BJ/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.