Javascript 收割。只有第一个表被绘制,我用表3调用函数。控制台上没有任何内容。注释已更改。您的代码顺序不够。您没有检查所有单元格中的所有值。我决定使用jquery并编辑我的问题,对吗?没有任何更改。。。但是是的,我忘了休息。只有第一个表被绘制,我用表3调用函数。控制台
Javascript 收割。只有第一个表被绘制,我用表3调用函数。控制台上没有任何内容。注释已更改。您的代码顺序不够。您没有检查所有单元格中的所有值。我决定使用jquery并编辑我的问题,对吗?没有任何更改。。。但是是的,我忘了休息。只有第一个表被绘制,我用表3调用函数。控制台,javascript,php,html,jquery,Javascript,Php,Html,Jquery,收割。只有第一个表被绘制,我用表3调用函数。控制台上没有任何内容。注释已更改。您的代码顺序不够。您没有检查所有单元格中的所有值。我决定使用jquery并编辑我的问题,对吗?没有任何更改。。。但是是的,我忘了休息。只有第一个表被绘制,我用表3调用函数。控制台上没有任何内容。注释已更改。您的代码顺序不够。您没有检查所有单元格中的所有值。我决定使用jquery并编辑了我的问题,对吗?为什么在筛选器方法中返回+c.innerText?为什么是+c?要将innerText值从字符串转换为数字,以便与我作为
收割。只有第一个表被绘制,我用表3调用函数。控制台上没有任何内容。注释已更改。您的代码顺序不够。您没有检查所有单元格中的所有值。我决定使用jquery并编辑我的问题,对吗?没有任何更改。。。但是是的,我忘了休息。只有第一个表被绘制,我用表3调用函数。控制台上没有任何内容。注释已更改。您的代码顺序不够。您没有检查所有单元格中的所有值。我决定使用jquery并编辑了我的问题,对吗?为什么在筛选器方法中返回+c.innerText?为什么是+c?要将innerText值从字符串转换为数字,以便与我作为数字传递的sorteio对象传递的值匹配,为什么在filter方法中返回+c.innerText?为什么+c?将innerText值从字符串转换为数字,以便它能够匹配作为数字传递的sorteio对象传递的值
<head>
<title>Loteria</title>
<style>
/* display centered tables */
.tables {
display: flex;
justify-content: space-around;
}
/* space tables from each other */
table {
margin: 4em;
}
/* give border and spacing table datas and merge its borders */
table td {
border: 1px solid black;
padding: 1em;
border-collapse: collapse;
}
/* change td background color */
.bg {
background-color: blue;
}
</style>
</head>
<body>
<div class="tables">
<!-- First Table -->
<table id="table1">
<tr class="row0">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row1">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row2">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row3">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row4">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
</table>
<!-- Second Table -->
<table id="table2">
<tr class="row0">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row1">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row2">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row3">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row4">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
</table>
<!-- Third Table -->
<table id="table3">
<tr class="row0">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row1">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row2">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row3">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
<tr class="row4">
<td>10</td>
<td>20</td>
<td>30</td>
<td>40</td>
<td>50</td>
</tr>
</table>
</div>
</body>
</html>
<?php
function Lottery()
{
// declares a empty array
$arr = [];
// raffle a multiple of 10 number between 1...50
while (true) {
$num = mt_rand(1, 5) * 10;
if (!in_array($num, $arr)) {
array_push($arr, $num);
}
if (count($arr) > 4) break;
}
for ($i = 0; $i < count($arr); $i++) {
array_fill_keys($arr, $i);
}
// sorts the array, but if it is a raffle, so why i would sort it?
// return the array
//sort($arr);
return $arr;
}
$sorteio1 = Lottery(); // first raffle
$sorteio2 = Lottery(); // second raffle
$sorteio3 = Lottery(); // third raffle
?>
<!-- So, change background color or call php functions from html is kinda messy, so I used
javascript to make thins easier -->
<script>
// receives the table number and raffle object
function BluePaint(numTable, sorteio) {
// selects the table with id od numTable
if (document.querySelector("#table" + numTable)) {
for (let [key, value] of Object.entries(sorteio)) {
// selects its rows
let row = document.querySelector(".row" + key);
// select its cols
let cells = row.getElementsByTagName("td");
// change cols's class to bg
for (let i = 0; i < 5; i++) {
if (cells[i].innerText == value) {
cells[i].className = "bg";
break;
}
}
}
}
}
// receives arrays from php
let sorteio1 = <?php echo '["' . implode('", "', $sorteio1) . '"]' ?>;
let sorteio2 = <?php echo '["' . implode('", "', $sorteio2) . '"]' ?>;
let sorteio3 = <?php echo '["' . implode('", "', $sorteio3) . '"]' ?>;
// call funcions
//BluePaint(1, sorteio1);
//BluePaint(2, sorteio2);
BluePaint(3, sorteio3);
</script>
function BluePaint(sorteio, numTable) {
var arr = $.each(sorteio, function(key, value) {
return value;
});
var $rows = $("#table" + numTable).children("tr");
var $tds = $rows.find("td");
var i = 0;
$.each($tds, function() {
if ($(this).text() == arr[i]) $(this).toggleClass("bg");
i++;
})
}
for (let i = 0; i < 5; i++) {
if (cells[i].innerText == value) {
cells[i].className = "bg";
break;
}
}
for (let i = 0; i < 5; i++) {
if (cells[i].innerText == value) {
cells[i].className = "bg";
}
}
if (document.querySelector("#table" + numTable)) {
Iterate over tables (or explicit take only one specified table)
Iterate over rows
Iterate over cells
Check if value in cell exists in your lottery array