使用javascript更改元素的所有相同类名的样式

时间:2017-06-02 03:23:16

标签: javascript php

我收到了这个错误。我无法找到它的错误。我正在使用PHP和javascript。

我的代码下方有一个隐藏的iframe:

button

我有这行代码,一行操作按钮,其中<iframe id="hidden_form_submitter" name="hidden_form_submitter" style="width:100%;height:1px;visibility:hidden"></iframe> 行将作为URL参数发送:

id

然后我最后在顶部有这个代码来更新我的数据库中的行:

<tr bgcolor="#d1ffcf" class="row-<?=$transaction['id']?>">
<td>
    <a class="done-btn" data-confirm="Are you sure?" href="?action=change&status=done&transact_id=<?=$transaction['id']?>" target='hidden_form_submitter' title="Click if matched!"> Done</a>   
</td>
</tr>

我的服务器更新方面没问题。 问题是JavaScript我想在不重新加载整个页面的情况下更改所有相同类的bgcolor。

更新:无法更改每个班级的背景。例如,我有这个参数要发送。 <? if($_GET['action'] == 'change'){ //update query here echo "<script>window.parent.document.getElementsByClassName('row-{$get['id']}').style.backgroundColor='green';</script>"; exit; } ?> 因此,具有类?action=change&status=done&transact_id=1608的所有元素都应该更改背景颜色或更改样式。

1 个答案:

答案 0 :(得分:1)

尝试更改此内容:

echo "<script>window.parent.document.getElementsByClassName('row-{$get['id']}').style.backgroundColor='green';'</script>";

对此:

echo "<script>";
echo "var allRows = window.parent.document.getElementsByClassName('row-{$get['id']}');";
echo "for (var i = 0; i < allRows.length; i++) {";
echo "    allRows[i].style.backgroundColor = 'green';";
echo "}";
echo "</script>";

您需要迭代allRows并在每个元素上设置backgroundColor

(灵感来自example