Javascript 使用Onclick运行函数以访问js中的对象属性
我有一个脚本,可以生成一段随机的文本。它从数组中随机选择单词,并创建连接到段落中的句子 现在,我希望能够通过html文件中的列表从具有不同单词音调的不同数组中进行选择,以形成段落 我制作了一个对象,不同的单词音调作为单独的属性,它们的值是不同的数组。我通过将object.property传递到段落函数中来测试这一点,这是有效的。所以我知道我可以使用object.property传递到函数中Javascript 使用Onclick运行函数以访问js中的对象属性,javascript,html,arrays,Javascript,Html,Arrays,我有一个脚本,可以生成一段随机的文本。它从数组中随机选择单词,并创建连接到段落中的句子 现在,我希望能够通过html文件中的列表从具有不同单词音调的不同数组中进行选择,以形成段落 我制作了一个对象,不同的单词音调作为单独的属性,它们的值是不同的数组。我通过将object.property传递到段落函数中来测试这一点,这是有效的。所以我知道我可以使用object.property传递到函数中 function flavourChoice(choice) { var ipsumText =
function flavourChoice(choice) {
var ipsumText = ipsumTextFlavour[choice];
console.log(ipsumText);
现在,我有一些我想使用的列表元素,每个元素都可以选择不同的单词音调来填充段落。我想使用onclick调用带有if语句的列表上的函数。这应该选择要传递给段落函数的对象中的哪个属性
function flavourChoice(choice) {
var ipsumText = ipsumTextFlavour[choice];
console.log(ipsumText);
返回的ipsumText应等于两个数组中的任何一个。
但这不起作用。
这样行吗?有人能告诉我代码中的错误在哪里吗。我想不出来
<li onclick="flavourChoice(xx)”>choice one</li>
<li onclick="flavourChoice(yy)”>choice two</li>
<script>
var ipsumTextxx = [words here...]
var ipsumTextyy = [different words here...]
var ipsumTextFlavour = {
xx: ipsumTextxx,
yy: ipsumTextyy
}
function flavourChoice(choice) {
if(choice === xx) {
ipsumText = ipsumTextFlavour.xx;
} else {
ipsumText = ipsumTextFlavour.yy;
}
return(ipsumText)
}
/* then use ipsumText to pass into the various functions that create the paragraphs */
</script>
选择二
var ipsumTextxx=[这里的单词…]
var ipsumTextyy=[此处的不同单词…]
var ipsumtextflavor={
xx:ipsumTextxx,
yy:ipsumTextyy
}
功能选择(选择){
如果(选项===xx){
ipsumText=ipsumtextflavor.xx;
}否则{
ipsumText=ipsumtextflavor.yy;
}
返回(ipsumText)
}
/*然后使用ipsumText传递到创建段落的各种函数中*/
在函数中也将其设为字符串,然后使用ipsumText
调用generateParagraph()
函数
function flavourChoice(choice) {
var ipsumText = {};
if(choice === 'xx') {
ipsumText = ipsumTextFlavour.xx;
} else {
ipsumText = ipsumTextFlavour.yy;
}
generateParagraphs(ipsumText);
}
我将html中的链接列表更改为
<li onclick="flavourChoice('xx')">choice one</li>
在原始代码中紧随其后的是几个函数,最后一个函数传入ipsumText值并更改HTML中的DOM元素
我还在上面的函数中添加了所有这些。然后我调用了更新DOM的函数,这个函数可以工作。我可以单击链接列表,每个链接都会更改用于生成段落的数组 那没用。我是否以正确的方式使用return?这会使结果在函数之外可用吗?
flavourChoice(xx)
什么是xx
?@OrkhanAlikhanov我认为这就是我如何区分列表中选择的链接的方法。因此,如果我在html中有三个链接,xx,yy,zz,每个链接对应一个不同的单词数组,那么xx
是一个对象吗?它在哪里声明?@OrkhanAlikhanov否。html中的列表是要单击的单词列表。如果单击“选择一”或“选择二”,我需要能够更改函数中使用的数组。因此,我认为在调用onclick=“flavourChoice()”时需要为()传递一些值,以便if语句可以运行。感谢您的反馈。我认为“流浪”是帖子中的内容。代码有正确的字符。这对我来说仍然不起作用。我返回的是“ipsumText”“因为我认为我需要在函数flavourChoicesorry之外提供该结果,所以我希望单击链接时生成的段落使用数组“ipsumTextxx”中的单词,如果我单击以“xx”作为字符串的链接。但什么也没发生。段落根本没有生成。你应该调用你的generateParagraph()
函数原始代码调用generateParagraph()函数,效果很好,但当时我没有其他选项可供数组使用。我认为需要某种函数来告诉脚本使用哪个数组传递到generateParagraph()函数。要我贴一把小提琴看完整的密码吗?
<li onclick="flavourChoice('xx')">choice one</li>
function flavourChoice(choice) {
var ipsumText = ipsumTextFlavour[choice];
console.log(ipsumText);