Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery不接受属性,原因是给定的字符串而不是对象_Javascript_Jquery_Object_Html Object - Fatal编程技术网

Javascript 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对象添加属性从来都不是一个好主

说明:

我尝试动态获取HTML对象的值。所以我写了一个原型函数select on Object。它可以在控制台上工作,但不能在脚本中工作。jquery属性有一些不利于它的地方

错误:

相关对象的输出:

在对象上选择函数:

电话:

这是已知的错误吗?有解决办法吗?调试器仅与jquery中的一个点相关:

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,
});