Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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';s.data()函数?_Javascript_Jquery_Prototype - Fatal编程技术网

Javascript 如何访问元素';使用jQuery';s.data()函数?

Javascript 如何访问元素';使用jQuery';s.data()函数?,javascript,jquery,prototype,Javascript,Jquery,Prototype,我试图通过jQuery的.data()函数访问html元素的原型。到目前为止,我很困惑 这是我的代码: // start prototype definition for myWidget var myWidget = function() { console.log('my widget is alive.'); return this; }; myWidget.prototype.chosenSelect = []; myWidget.prototype.init =

我试图通过jQuery的
.data()
函数访问html元素的原型。到目前为止,我很困惑

这是我的代码:

// start prototype definition for myWidget
var myWidget = function() { 
    console.log('my widget is alive.');
    return this; 
};

myWidget.prototype.chosenSelect = [];

myWidget.prototype.init = function() {
    this.chosenSelect = $('#chooseMe');

    // test 1
    console.log(this.chosenSelect.data());

    // test 2
    console.log(this.chosenSelect.data('chosen'));

    // test3
    console.log(this.chosenSelect.data('Chosen'));

    // test4
    var chosenObject = this.chosenSelect.data();
    console.log(chosenObject.chosen);
};
上面的测试1返回了一个我可以使用ChromeDevTools查看的对象。该对象如下所示:

Object
    chosen: Chosen
        changeCallbacks: Array[0]
        etc
        etc
        etc
我想访问该数据对象中所选的
对象。但是测试2到4都返回未定义的
。我可能做错了什么

编辑 原型正在从另一个库添加到元素中。这是作业发生的摘录:

Chosen.prototype.init = function(select, zidx, isIE7) {
this.select = select;
this.select.data('chosen', this);

您可以按如下方式访问数据对象。这是一张工作票


您可以按如下方式访问数据对象。这是一张工作票


什么是
#选择ME
?它是否附有数据?是的,它应该。另一个库正在一个selecthtml元素上运行,为它提供所选的原型。请参见
//测试1
中的内容。它返回一个数据对象,其中选择了
:选择了
。您在哪里运行
$('chooseMe')。数据('choosed',…)
?@Blender:I将
$('chooseMe')
分配给
this.chosenSelect
。然后我运行
this.chosenSelect.data('selected')object.constructor.Prototype
,访问对象的内部
[[Prototype]]
属性(如果有),但这可能不是正确的对象。什么是
#chooseMe
?它是否附有数据?是的,它应该。另一个库正在一个selecthtml元素上运行,为它提供所选的原型。请参见
//测试1
中的内容。它返回一个数据对象,其中选择了
:选择了
。您在哪里运行
$('chooseMe')。数据('choosed',…)
?@Blender:I将
$('chooseMe')
分配给
this.chosenSelect
。然后我运行
this.chosenSelect.data('selected')object.constructor.Prototype
,访问对象的内部
[[Prototype]]]
属性(如果有)。
// Set some data on the widget.
jQuery.data($('#chooseMe')[0], "Chosen", {chosen: "Hello!"});

var myWidget = function() {
    console.log('my widget is alive.');
    return this;
};

myWidget.prototype.chosenSelect = [];

myWidget.prototype.init = function() {
    this.chosenSelect = $('#chooseMe')[0];

    // test 1
    console.log(jQuery.data(this.chosenSelect));

    // test 2
    console.log(jQuery.data(this.chosenSelect, "Chosen"));

    // test3
    console.log(jQuery.data(this.chosenSelect, "Chosen").chosen);

    // test4
    var chosenObject = jQuery.data(this.chosenSelect, "Chosen");
    console.log(chosenObject.chosen);
};


myWidget.prototype.init();