Javascript jQuery.val()在设置后立即生成未定义的
在我的Javascript中,我有以下代码(为简洁起见进行了编辑):Javascript jQuery.val()在设置后立即生成未定义的,javascript,jquery,Javascript,Jquery,在我的Javascript中,我有以下代码(为简洁起见进行了编辑): console.log返回undefined,但是如果我在Chrome的控制台中运行相同的语句,它将生成example 有人知道为什么会这样吗?加载HTML后,JavaScript肯定会启动,log语句在Chrome的控制台中工作,但在代码内部,它输出的未定义$(此)似乎引用了listtoken:$(此).attr('data-token'),而不是jQuery对象?如果数据没有属性.attr,将返回未定义的 不清楚是否将此设
console.log
返回undefined,但是如果我在Chrome的控制台中运行相同的语句,它将生成example
有人知道为什么会这样吗?加载HTML后,JavaScript肯定会启动,log语句在Chrome的控制台中工作,但在代码内部,它输出的未定义$(此)
似乎引用了listtoken:$(此).attr('data-token')
,而不是jQuery对象?如果数据
没有属性.attr
,将返回未定义的
不清楚是否将此
设置为数据的另一个属性的jQuery对象或元素
未包含在问题中
var数据={
listtoken:function(){console.log(this,$(this.attr())}
}
data.listtoken()
什么是$(此)
在数据中引用?可以在问题中包含html
,堆栈片段或JSFIDLE会很有帮助。我猜在javascript运行时,该元素还没有加载。您的js是否在就绪
块中?@guest271314这不重要,即使data.listtoken是硬编码的,问题也会发生。“这不重要,即使data.listtoken是硬编码的,问题也会发生。”?如果$(此)
正在引用数据
对象,那么数据
对象是否定义了.attr
方法?可以在问题中包含html
,创建stacksnippets,JSFIDLE来演示?看见
var data = {
...
listtoken: $(this).attr('data-token')
}
$("#qtip-search-"+ data.listtoken +"-content .search-input").val("example");
console.log($("#qtip-search-"+ data.listtoken +"-content .search-input").val());