我正在尝试为流行的游戏Mount & Blade制作一个无名角色创建测试器。根据所选择的选项,脚本在理论上应该像在游戏中一样确定角色的统计信息。
当我在选择框中选择男性/女性时,任何指定的字段都不会消失。我做错了什么?
当统计数据改变时,我想以表格的形式自动显示它们,这是否需要我为每个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>编辑:此外,我还确保在标题中链接到了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>发布于 2012-08-24 23:25:18
请参阅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();还可以使用:.f{display:none} .m{display:block;}创建一个CSS样式表。
你的代码有一个问题:如果你有...
<select id="selGender">
<option value="1" >Male</option>
<option value="2">Female</option>
</select>..。默认选择的值是"Male",所以如果你选择它,它不会触发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 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(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/
https://stackoverflow.com/questions/12111830
复制相似问题