我无法制作不确定长度的 javascript 列表,仅在分配了某些属性时才显示
I'm having trouble making a javascript list on indeterminate length only display when certain attributes are assigned
我有一个聊天框,我正在制作一个阻止功能。我几乎已经得到了代码,但它不起作用(Java 不是我的语言)。
我得到了属性,我可以让它消失,但我不能递归地做。在许多情况下,代码会完全停止工作。
<table>
<td userclass="" username="cat">cat</td>
<td userclass="" username="hampster">hamster</td>
<td userclass="" username="dog">dog</td>
</table>
<p id="message"></p>
<script>
var x = document.getElementsByTagName("td");
var i;
for (i = 0; i < x.length; i++) {
var btn = document.getElementsByTagName("td")[i];
var x = btn.attributes[1].value;
if (x="hamster")
{
document.getElementsByTagName("td")[i].style.visibility = "hidden";
}else{
document.getElementsByTagName("td")[i].style.visibility = "visible";}
}
</script>
成功发生在我包含 'For' 循环之前
错误通常什么都不做
var
在全局范围内定义了一个变量。您正在使用它来存储 <td>
的列表和属性的值。首先尝试使用不同的变量名称:
var myTds = document.getElementsByTagName("td");
var i;
for (i = 0; i < myTds.length; i++) {
var btn = myTds[i];
var x = btn.attributes[1].value;
if (x=="hamster") {
myTds[i].style.visibility = "hidden";
} else {
myTds[i].style.visibility = "visible";
}
}
另请注意:
1) 你应该使用==
进行比较;
2) 你不需要使用 document.getElementsByTagName("td")
.
3) 在您的 HTML 中将 username="hampster"
更改为 username="hamster"
以查看示例是否有效。
JSBin here
我有一个聊天框,我正在制作一个阻止功能。我几乎已经得到了代码,但它不起作用(Java 不是我的语言)。
我得到了属性,我可以让它消失,但我不能递归地做。在许多情况下,代码会完全停止工作。
<table>
<td userclass="" username="cat">cat</td>
<td userclass="" username="hampster">hamster</td>
<td userclass="" username="dog">dog</td>
</table>
<p id="message"></p>
<script>
var x = document.getElementsByTagName("td");
var i;
for (i = 0; i < x.length; i++) {
var btn = document.getElementsByTagName("td")[i];
var x = btn.attributes[1].value;
if (x="hamster")
{
document.getElementsByTagName("td")[i].style.visibility = "hidden";
}else{
document.getElementsByTagName("td")[i].style.visibility = "visible";}
}
</script>
成功发生在我包含 'For' 循环之前 错误通常什么都不做
var
在全局范围内定义了一个变量。您正在使用它来存储 <td>
的列表和属性的值。首先尝试使用不同的变量名称:
var myTds = document.getElementsByTagName("td");
var i;
for (i = 0; i < myTds.length; i++) {
var btn = myTds[i];
var x = btn.attributes[1].value;
if (x=="hamster") {
myTds[i].style.visibility = "hidden";
} else {
myTds[i].style.visibility = "visible";
}
}
另请注意:
1) 你应该使用==
进行比较;
2) 你不需要使用 document.getElementsByTagName("td")
.
3) 在您的 HTML 中将 username="hampster"
更改为 username="hamster"
以查看示例是否有效。
JSBin here