Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用Javascript库函数时出现javascript错误

调用Javascript库函数时出现javascript错误
EN

Stack Overflow用户
提问于 2013-10-13 16:52:08
回答 1查看 420关注 0票数 1

我一直在开发一个名为TechX的javascript库。以下是代码:

代码语言:javascript
运行
AI代码解释
复制
(function(){
        function tex(s){
            return new tex.init(s);
        };
        //declare the init selector function
        tex.init = function(s){
            if(!s){
                return this;
            }
            else{
                this.length = 1;
                if (typeof s === "object"){
                    this[0] = s;
                }
                else if(typeof s === "string"){
                    var obj;
                    obj = document.querySelector(s);
                    this[0] = obj;
                }
                return this;
            }
        }
        tex.prototype = {
            dit : function(){
                this.innerHTML = 'Hi?!?!?!';
            }
        };
        window.tex = tex;
})();

在我的身体里,我有一个脚本来测试它:

代码语言:javascript
运行
AI代码解释
复制
<input type="button" id="inpt" value="click"></input>
<div id="test"></div>
<script>
var inn = document.getElementById("inpt");
inn.onclick = function(){
    tex('#test').dit();
};
</script>

当我加载页面时,没有错误,但是当我单击按钮时,会得到一个错误,上面写着“'undefined' is not a function (evaluating 'tex('#test').dit();')”。

有人知道我的代码做错了什么吗?我怎样才能纠正错误?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-13 17:03:13

在我看来,问题是tex("#test")返回一个text.init对象,但是.dit()tex上的方法,而不是tex.init上的方法,因此没有方法.dit()可执行。

也许您想要改变这种情况:

代码语言:javascript
运行
AI代码解释
复制
tex.prototype = {...}

对此:

代码语言:javascript
运行
AI代码解释
复制
tex.init.prototype = {...}

因此,.dit()方法将位于您实际创建的对象的类型上。

此外,我认为:

代码语言:javascript
运行
AI代码解释
复制
        dit : function(){
            this.innerHTML = 'Hi?!?!?!';
        }

需要这样做:

代码语言:javascript
运行
AI代码解释
复制
        dit : function(){
            this[0].innerHTML = 'Hi?!?!?!';
        }

或者,如果您想让它像jQuery那样工作,那么您必须对所有包含的对象进行迭代,如下所示:

代码语言:javascript
运行
AI代码解释
复制
        dit : function(){
            for (var i = 0; i < this.length; i++) {
                this[i].innerHTML = 'Hi?!?!?!';
            }
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19352018

复制
相关文章
JavaScript 使用 for 循环时出现的问题
有一些项目组在定位问题的时候发现,在使用 “for(x in array)” 这样的写法的时候,在 IE 浏览器下,x 出现了非预期的值。
四火
2022/07/15
4.2K0
JavaScript 使用 for 循环时出现的问题
Python 运行JavaScript 调用JavaScript函数
我们在进行python爬虫爬取一些站点时,有时会用到js逆向的操作,这时候就需要python运行javascript来进行操作
Chuanrui 初见之旅
2022/11/14
1.2K0
JavaScript 函数调用
在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面。
陈不成i
2021/07/19
2.3K0
JavaScript 调用栈
原文链接:https://note.noxussj.top/?source=cloudtencent 什么是调用栈? 我们写的 JS 代码大多数都是同步模式,也就是从上往下依次执行。后一个任务必须要等
菜园前端
2023/05/14
4880
JavaScript链式调用
一般的函数调用和链式调用的区别:链式调用完方法后,return this返回当前调用方法的对象。
wfaceboss
2019/04/08
1.7K0
JavaScript链式调用
javascript错误类型
作为一个程序员,需要的不仅仅是技术,更是需要在遇到错误的时候对错误的处理能力。就前端而言,技术一直在更新,但是JavaScript中的错误也就是那么几个。掌握不同的报错信息会让你的实际开发事半功倍。
踏浪
2019/07/31
8440
JavaScript 错误异常
JavaScript 错误异常 错误异常语句 try 语句测试代码块中的错误 catch 语句处理错误 throw 语句允许自定义错误 finally 语句在错误异常语句后,必须执行的代码块 try { adddlert("Hello") ; } catch (err) { document.getElementById("demo").innerHTML = err.message ; } // 结果 : adddlert is not defined JavaScript 将 addd
Mirror王宇阳
2020/11/12
5140
Python调用JavaScript代码
在写爬虫经常会遇到很多JS代码,比如说某些参数加密,可以只用用Python来翻译,但是有时候代码不容易阅读(JS渣渣),所以这里直接去找一条捷径,直接用Python的第三方库去调用JS代码。
小歪
2018/10/23
1.6K0
JavaScript之调用栈
很早之前写过栈和堆的结构,非常简单的介绍了一下,主要是为了明白深拷贝和浅拷贝。最近突然发现了调用栈这个概念,理解这个概念对于一些函数的执行能更清晰的理解,比如递归。
wade
2020/04/24
8050
JavaScript之调用栈
jquery调用javascript方法
本来想找个“优雅”一点的方法,类似C#在调用C++方法时候的Invoke之类的。没找到,后来想想,其实也没必要,直接写就好了,算最优雅了吧。只是少了VS的Intelligence,有点不习惯罢了。
_淡定_
2018/08/24
1.7K0
关于javascript错误捕获
function define(){ ... } var a = define; define = function(){ try{ a.apply(this,arguments); }catch(e){ ...错误上报 } };
IMWeb前端团队
2019/12/03
9030
Javascript错误处理
每个前端开发都会用到浏览器调试,有了这个调试,我们可以更好的找到问题并解决问题。我们主要讲错误处理。
大熊G
2022/11/14
8690
Javascript错误处理
关于javascript错误捕获
``` javascript的出错我们应该都很熟悉,例如`xxx undefined`,`SyntaxError`等。 我们team将出现错误的javascript代码取名为badjs,也有一个
IMWeb前端团队
2017/12/29
1.2K0
Javascript错误处理
在Javascript中,通过try-catch语句来实现异常的处理。该语句作为标准的一部分,其语法规则如下:
行百里者半九十
2020/07/23
8000
关于 javascript 错误捕获
作者:vienwu 随便写点啥,不然要被k。。 javascript 的出错我们应该都很熟悉,例如xxx undefined,SyntaxError等。 我们 team 将出现错误的 javascri
腾讯IVWEB团队
2017/03/13
1.3K0
JavaScript中的链式调用
链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧。
WindRunnerMax
2020/11/27
9650
JavaScript中的链式调用
链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧。
WindRunnerMax
2020/11/26
4.2K0
01- JavaScript 调用堆栈
JavaScript 引擎是一个单线程解析器,而单线程解析器由堆和单一调用栈组成。浏览器提供 Web APIs,比如:DOM,AJAX 和 定时器。
公众号---人生代码
2020/12/15
1.4K0
JavaScript——函数定义和调用
定义函数时,函数如果有参数,参数放到小括号里面,函数如果有返回值,返回值通过 return 关键字来返回
落雨
2022/04/07
29.7K0
学习Javascript之尾调用
总括: 本文介绍了尾调用,尾递归的概念,结合实例解释了什么是尾调用优化,并阐述了尾调用优化如今的现状。
Damonare
2020/02/23
1.2K0
学习Javascript之尾调用

相似问题

调用AngularFirestore时出现Javascript错误

125

调用静态库函数时出现分段错误

10

尝试调用函数时出现Javascript错误

40

库函数调用出现CodeIgniter错误

20

LotusScript -如何从JavaScript代理调用JavaScript脚本库函数?

210
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档