Javascript jquery不接受属性,原因是给定的字符串而不是对象
说明: 我尝试动态获取HTML对象的值。所以我写了一个原型函数select on Object。它可以在控制台上工作,但不能在脚本中工作。jquery属性有一些不利于它的地方 错误: 相关对象的输出: 在对象上选择函数: 电话: 这是已知的错误吗?有解决办法吗?调试器仅与jquery中的一个点相关:Javascript jquery不接受属性,原因是给定的字符串而不是对象,javascript,jquery,object,html-object,Javascript,Jquery,Object,Html Object,说明: 我尝试动态获取HTML对象的值。所以我写了一个原型函数select on Object。它可以在控制台上工作,但不能在脚本中工作。jquery属性有一些不利于它的地方 错误: 相关对象的输出: 在对象上选择函数: 电话: 这是已知的错误吗?有解决办法吗?调试器仅与jquery中的一个点相关: S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++) 已成为一种解决方法: 向Object.prototype对象添加属性从来都不是一个好主
S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++)
已成为一种解决方法:
向Object.prototype对象添加属性从来都不是一个好主意。用这样的简单赋值来添加它们是一个特别糟糕的主意,这样它们就可以枚举了。另外,在查看select函数的内容时,请注意,实际上没有对象具有映射方法。数组是唯一具有映射的内置对象。jQuery对象也有它
我强烈建议不要向Object.prototype添加任何内容
但如果你还是这么做了,那就让你添加的*不可枚举`:
Object.defineProperty(Object.prototype, "select", {
value() {
// ...your code here
},
writable: true,
configurable: true,
});
这仍然不是一个好主意,因为库有自己的专用对象并不少见,这很可能有jQuery对象所做的选择方法,例如,设置冲突。但至少如果您使其不可枚举,那么该属性将不会在for-in循环和类似的循环中显示。如果这是一个特定于jQuery的用例,您可以创建一个jQuery插件函数 比如: $ => { //$.fn是$.prototype的别名 $.fn.getArr=functionwhat{ 返回此.mapi,el=>$el[what].get; } }jQuery console.log$'p'.getArr'text' console.log$'input'.getArr'val' 第1款 第2段
你好请使用演示问题的示例更新您的问题,最好是使用[]工具栏按钮;上的堆栈片段运行问题。你试过obj[什么]?它返回保存在哪个变量中的属性obj值,如果不存在,则返回未定义的属性obj值
Object.prototype.select = function(what)
{
return this.map(function() {
return this[what];
}).get();
}
label.select('innerText')
S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++)
function getData(data)
{
return $(data).map(function() {
return this.value;
}).get();
}
Object.defineProperty(Object.prototype, "select", {
value() {
// ...your code here
},
writable: true,
configurable: true,
});