我有几个表通过PHP循环传递到我的页面。在每个PHP循环结束时,运行if语句(评估为true),如下所示:
if ($ssstatus[0] == 'F'){
echo "<script>";
//echo "alert('We are in this loop');";
echo "flagfinished(".$gameID.");";
echo "</script>";
}
我的旗帜功能是:
function flagfinished(tableid){
//alert("Made it to the function!");
var myid = "table"+tableid;
//alert(myid);
var testel = document.getElementById(myid);
testel.setAttribute("border-style","solid");
};
我不确定为什么这不起作用。我可以说我在表上的id属性已正确设置并匹配变量myid。我甚至试过只输入一个id属性的文本而不是myid,但仍然没有运气。我还手动添加了&#34; border-style&#34;属于我的CSS,它的工作原理。也许我完全以错误的方式解决这个问题。或许我忽略了一些显而易见的事情。我已经工作了好几个小时了!感谢您的任何想法或帮助!
答案 0 :(得分:0)
testel.style.borderStyle = "solid";
答案 1 :(得分:0)
您尝试定义的border-style
不是元素属性。该属性为style
。 border-style
将是style属性的值。
所以,在你的思路中:
var testel = document.getElementById(myid);
testel.setAttribute("style", "border-style: solid");
但是,Javascript DOM已经为你处理了style属性,所以你可以去:
var testel = document.getElementById(myid);
testel.style.bordeStyle = "solid";
答案 2 :(得分:0)
为什么你试图用javascript调用flagFinished?你也可以用php做同样的事情。在将css类发送到浏览器之前添加一个css类(回显/打印出来)然后让css做它的魔术?那么你就不必将所有这些额外的标签发送到客户端,这使得页面加载速度更快,并且是一个更好的解决方案。
你可以做点什么:<?php
$tables = [
['data' => [
['id' => 1, 'content' => 'sample content'],
['id' => 2, 'content' => 'sample content jabadabaduuu...'],
['id' => 3, 'content' => 'test 1123123123'],
['id' => 4, 'content' => 'sample content']
],
'status' => 'F'
],
['data' => [
['id' => 1, 'content' => 'sample content'],
['id' => 2, 'content' => 'sample content jabadabaduuu...'],
['id' => 3, 'content' => 'test 1123123123'],
['id' => 4, 'content' => 'sample content']
],
'status' => 'S'
],
['data' => [
['id' => 1, 'content' => 'sample content'],
['id' => 2, 'content' => 'sample content jabadabaduuu...'],
['id' => 3, 'content' => 'test 1123123123'],
['id' => 4, 'content' => 'sample content']
],
'status' => 'F'
]
];
foreach ($tables as $table) {
?>
<table id="<?= myUniqueTableIdGeneratorFunction() ?>"
class="<?= ($table['status']) == 'F' ? 'class-with-border' : null ?>" ><?php
foreach ($table['data'] as $row) {
?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= $row['content'] ?></td>
</tr>
<?php
}
?></table><?php
}
?>
我没有对此进行测试,只是快速地从头顶写下了这个。