gpt4 book ai didi

javascript - 如何在相关事件发生后获取特定对象的属性?

转载 作者:行者123 更新时间:2023-11-27 23:45:24 25 4
gpt4 key购买 nike

我不确定我的标题是否清楚,但让我们看一下。

我在 ul 列表中有 2 个 li 元素,我希望当我单击 li 时,获取li,然后根据 phones 变量创建一个对象。

示例:当我单击 NEXUS 时,在我的控制台中获取一个具有以下属性的电话对象:

models: ['5', '6', '5X', '6P'];

不幸的是,我无法将构造函数名称传递给函数 setConstructor() 的返回值。我尝试用 {}() 编写“modelname”,但代码根本没有执行。

我该怎么做?

var phones = {
NEXUS: {
name: 'Nexus',
models: ['5', '6', '5X', '6P']
},
IPHONE: {
name: 'iPhone',
models: ['5', '5S', '6', '6S']
}
};

var lastConstructorClicked = {};
var output = {};

function Phone(constructorModels) {
this.models = constructorModels;
this.getModels = function () {
return this.models;
};
}

function setConstructor(modelname) {
return phones.modelname.models;
}

$("a[id^='show-models-']").click(function() {
lastConstructorClicked = $(this).text();
console.log(lastConstructorClicked);
output = new Phone(setConstructor(lastConstructorClicked));
});

console.log(output);
<ul class="dropdown-menu">
<li><a href="#" id="show-models-iphone">IPHONE</a></li>
<li><a href="#" id="show-models-nexus">NEXUS</a></li>
</ul>

最佳答案

phones.modelname.models 将查找实际命名的成员 modelname,而不是该变量命名的成员。你想要:

phones[modelname].models

var phones = {
NEXUS: {
name: 'Nexus',
models: ['5', '6', '5X', '6P']
},
IPHONE: {
name: 'iPhone',
models: ['5', '5S', '6', '6S']
}
};

var lastConstructorClicked = "";
var output = {};

function Phone(constructorModels) {
this.models = constructorModels;
this.getModels = function() {
return this.models;
};
}

function setConstructor(modelname) {
return phones[modelname].models;
}

$("a[id^='show-models-']").click(function(e) {
e.preventDefault();

lastConstructorClicked = $(this).text();
console.log(lastConstructorClicked);
output = new Phone(setConstructor(lastConstructorClicked));
console.log(output);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<ul class="dropdown-menu">
<li><a href="#" id="show-models-iphone">IPHONE</a>
</li>
<li><a href="#" id="show-models-nexus">NEXUS</a>
</li>
</ul>

关于javascript - 如何在相关事件发生后获取特定对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com