gpt4 book ai didi

javascript - 选择另一个选项时如何在选择中显示/隐藏选项

转载 作者:搜寻专家 更新时间:2023-11-01 05:13:47 25 4
gpt4 key购买 nike

我正在尝试为热门游戏《骑马与砍杀》制作一个非官方 Angular 色创建测试器。理论上,脚本应该根据所选择的选项确定 Angular 色的统计数据,就像在游戏中一样。

当我在选择框中选择男性/女性时,指定的字段都没有消失。我做错了什么?

当统计数据发生变化时,我想以表格形式自动显示它们,这是否需要我为每个 td 提供一个 id,或者我可以以某种方式引用哪个单元格,比如从左边两个单元格向下的第三个单元格是table1(3,2) 还是太难/不可能?

这是 Javascript:

// Base Stats - 
var sGender; // Male or Female
var iAgi = 6;
var iStr = 5;
var iInt = 5;
var iCha = 5;

$("#selGender").change(function() {
var mnf = $(this).val();
sGender = parseInt(mnf);
if (sGender = 1){
// Show/hide options
$('#fnomad').hide();
$('#fnoble').hide();
$('#fsquire').hide();
$('#mnomad').show();
$('#mnoble').show();
$('#msquire').show();
iAgi++;
iInt++;
this.disabled=true;
} else {
$('#mnomad').hide();
$('#mnoble').hide();
$('#msquire').hide();
$('#fnomad').show();
$('#fnoble').show();
$('#fsquire').show();
iStr++;
iCha++;
this.disabled=true;
}
}

这是HTML

<legend>Choose your background:</legend>
<label>Gender</label>
<select id="selGender">
<option value="1" >Male</option>
<option value="2">Female</option>
</select>
<label>Your father was ...</label>
<select id="selFather">
<option id="fnoble" value="fnoble">a Noble</option>
<option id="mnoble" value="mnoble">a Noble</option>
<option value="merchant">a Merchant</option>
<option value="vetwarrior">a Veteran Warrior</option>
<option value="thief">a Thief</option>
<option id="fnomad" value="fnomad">a Nomad</option>
<option id="mnomad" value="mnomad">a Nomad</option>
</select>

编辑:另外,我确定我已经链接到 header 中的 jQuery 文件。

  <script type="text/javascript" src="jquery.min.js"></script>

EDIT2:这是 mSquire 和 fSquire 所在的部分:

<label>When you grew to a young adult, you became a ...</label>
<select id="selAdult">
<option id="msquire" value="msquire">a Squire</option>
<option id="fsquire" value="fsquire">a Lady in waiting</option>
<option value="troubadour">Troubadour</option>
<option value="student">Student</option>
<option value="peddle">Peddler</option>
<option value="poacher">Poacher</option>
</select>

最佳答案

参见 http://jsfiddle.net/KvNVN/

您可以向它们添加类,而不是显示/隐藏每个元素:

<select id="selFather">
<option id="fnoble" value="fnoble" class="f">a Noble (f)</option>
<option id="mnoble" value="mnoble" class="m">a Noble (m)</option>
<option value="merchant">a Merchant</option>
<option value="vetwarrior">a Veteran Warrior</option>
<option value="thief">a Thief</option>
<option id="fnomad" value="fnomad" class="f">a Nomad (f)</option>
<option id="mnomad" value="mnomad" class="m">a Nomad (m)</option>
</select>

然后

$('.f').hide();
$('.m').show();

您还可以创建一个 CSS 样式表:.f{display:none} .m{display:block;}

你的代码有问题:如果你有...

<select id="selGender">
<option value="1" >Male</option>
<option value="2">Female</option>
</select>

...默认选择值为“男性”,因此如果您选择它,它不会触发 onchange 事件。你可以使用

<select id="selGender">
<option selected="selected" disabled="disabled">Select gender:</option>
<option value="1" >Male</option>
<option value="2">Female</option>
</select>

此外,你还有

if (sGender = 1)

你应该使用

if (sGender == 1)

因为你是在比较,而不是设定值。

关于您的其他问题(浏览表格),您可以创建一个 JavaScript 函数来执行此操作。但是我不太明白你想要什么“从左边向下两个单元格开始的第三个单元格”。

编辑:

如果我理解你有一张像这样的 table

<table id="table">
<tbody>
<tr>
<td>Skill 1</td>
<td>Skill 2</td>
<td>Skill 3</td>
</tr>
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td>Value 3</td>
</tr>
</tbody>
</table>

Table

你想要

table(1,1)=Skill 1 cell
table(1,2)=Value 1 cell

table(2,1)=Skill 2 cell
table(2,2)=Value 2 cell

...

然后,

function table(col,row){
return document.getElementById('table').tBodies[0].getElementsByTagName('tr')[row-1].getElementsByTagName('td')[col-1];
}

在这里查看:http://jsfiddle.net/UGHHd/

关于javascript - 选择另一个选项时如何在选择中显示/隐藏选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111830/

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