如何将原型jquery函数转换为javascript原型函数



我在jquery中使用填字游戏,出于某种原因,我需要将其转换为javascript并避免使用jquery。我已经设法转换了它的许多部分,但我在原型函数中遇到了一个大问题,我不明白如何转换它

以下是代码摘要:

$("#"+cw_id).crossword();
(function($) {
// plugin definition
$.fn.crossword = function(options) {
.....
// implementation code goes here.    
return this.each(function(){
....
}
})();
// end plugin definition

我试过这样做和类似的电话,但都没有效果。

document.getElementById("#"+cw_id).crossword();
(function() {
// plugin definition
Object.prototype.crossword = function(options) {
})();
// end plugin definition

此原型函数的实际代码位于以下链接:https://github.com/electricg/jQuery-Html5-Crossword/blob/master/crossword.js#L1

并且呼叫者在索引链接处:https://github.com/electricg/jQuery-Html5-Crossword/blob/master/index.html#L62

我真的需要知道如何将这个原型函数转换回javascript提前感谢提供的任何帮助

对于与jQuery类似的功能,您正在寻找HTMLElement.prototype

HTMLElement.prototype.crossword = function(text) {
this.innerHTML = text;
};
document.getElementById('crossword1').crossword('crossword here');
<div id=crossword1 />

由于这是个坏主意,我会使用一个函数并绑定元素来获得类似的结果。您也可以将其作为参数传入,但这需要对现有代码进行更多重构。

const crossword = function(text) {
this.innerHTML = text;
};
crossword.bind(document.getElementById('crossword1'))('crossword here');
<div id=crossword1 />

最新更新