当表格加载时,我想将-1的所有值设置为0 ...
我尝试了下面的代码,但它没有用。
添加了代码段,即使建议无效......
$(document).ready(function() {
alert("bothSexes");
$('#error-ageGroup tbody').each(function() {
var row = $(this).closest("tr");
var bothSexes = row.find(".bothSexesError2").val();
alert(bothSexes);
var femaleErorr = row.find(".femaleSexesError2").val();
var MaleError = row.find(".maleSexesError2").val();
if (bothSexes === -1) {
row.find(".bothSexesError2").val(0);
}
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="error-ageGroup" class="table table-bordered table-striped dataTable">
<thead class="heading">
<tr>
<th>Location</th>
<th>Age Group</th>
<th class="centerTD">Both Sex</th>
<th class="centerTD">Male Count</th>
<th class="centerTD">Female Count</th>
</tr>
</thead>
<tbody class="whitebg">
<tr>
<td class='bothSexesError bothSexesError2'>
<input class="centerTD" name="bothSexesError" type="text" value="-1" readonly/>
</td>
<td class='maleSexesError maleSexesError2'>
<input class="centerTD" name="maleError" type="text" value=" -1" />
</td>
<td class='femaleSexesError femaleSexesError2'>
<input class="centerTD" name="femaleError" type="text" value="-1" />
</td>
</tr>
</tbody>
</table>
&#13;
答案 0 :(得分:2)
请注意,val()
返回一个字符串,但您将其与整数进行比较。您需要将两者都转换为相同的数据类型:
if (parseInt(bothSexes, 10) === -1) { // or (bothSexes === "-1")
row.find("#bothSexesError").val(0);
}
或使用类型不敏感的比较,其中类型被自动强制匹配:
if (bothSexes == -1) { // note '=='. The string will be coerced to a Number for you
row.find("#bothSexesError").val(0);
}
个人我会使用前者,因为后者偶尔会导致意想不到的结果。
更新
现在你已经添加了HTML,我可以看到这里有几个问题。
id
属性。如果不需要,您应该将它们更改为类或完全删除它们。load()
事件处理程序中,由于您已经在document.ready
处理程序中运行,因此该代码是多余的,并且该元素不是img
,iframe
等这是一个包含所有上述修复的工作示例: