gpt4 book ai didi

javascript - 根据ajax拉入的值更改html单元格边框

转载 作者:行者123 更新时间:2023-12-03 02:24:50 25 4
gpt4 key购买 nike

编辑:所以根据您的建议进行一些小的更改后,我现在得到了

未捕获类型错误:无法读取未定义的属性“toggleClass”

我有一个由for循环创建的html表,我试图根据使用ajax拉入的delivery_avg更改边框颜色

我可以让它工作,以便边框在位置(颜色)上发生变化,但无法在交付平均时改变它,正如您从下面看到的那样,如果值低于 10,我试图将其更改为石灰,如果在 10 到 20 之间,则为橙色;如果在 20 到 30 之间,则为粉色

ajax传输的数据显示如下:

{beacon: "59", location: "YELLOW", delivery_avg: "04.48"}

因此,这有望意味着单元格边框变为石灰,但仍保持原来的黑色。

有人知道我哪里出了问题吗?

HTML:

<!doctype html>

<html>
<head>
<title>Table</title>
<style>
table {
padding: 10px 30px;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
}

table, td, th {
border: 1px solid black;
cellpadding: 5;
cellspacing: 5;
text-align: center;
vertical-align: middle;
font-size: 40px;
background-color: #8F8F8F;
}
</style>
<script> <!-- see javascript below --> </script>
</head>
<body>
<table id='zoning'>
<tbody></tbody>
</table>
</body>
</html>

Javascript:

function addColor() {
{
if (item.delivery_avg <= 10.00) {
return ('border-color', 'lime','border-width', 'thick');
} else if (item.delivery_avg>= 10.01 && item.delivery_avg<= 20.00) {
return ('border-color', 'brightorange','border-width', 'thick');
} else if (item.delivery_avg>= 20.01 && item.delivery_avg<= 30.00) {
return ('border-color', 'pink','border-width', 'thick');
}
};
}
$(document).ready(function() {
for (var i = 0; i < 12; i++) {
var row = $('<tr>').appendTo("#zoning tbody");
for (var j = 1; j < 11; j++) {
$(`<td class='${i * 10 + j}'>${i * 10 + j}</td>`).appendTo(row);
}
}

$.get('php/beacon.php', function(response) {
console.log(response);
var row;
response.forEach(function(item, index) {
console.log(item);
function addColor() {
{
if (item.delivery_avg <= 10.00) {
return ('border-color', 'lime','border-width', 'thick');
} else if (item.delivery_avg>= 10.01 && item.delivery_avg<= 20.00) {
return ('border-color', 'brightorange','border-width', 'thick');
} else if (item.delivery_avg>= 20.01 && item.delivery_avg<= 30.00) {
return ('border-color', 'pink','border-width', 'thick');
}
};
}
$(`td.${item.beacon}`).css(addColor() ).toggleClass('coloured');
});
});


function updateTable() {
//console.log('function called');
$('td.coloured').css('border-color','black').toggleClass('coloured');
$.get('php/beacon.php', function(response) {
response.forEach(function(item, index) {
console.log(item.beacon);
//$('td.coloured').css('border-color','#black').toggleClass('coloured');
$(`td.${item.beacon}`).css(addColor()).toggleClass('coloured');
});
});

}
var updateTableInterval = setInterval(updateTable, 30000);
});

最佳答案

我想你想替换这个

('border-color', 'lime','border-width', 'thick')

这样:

{'border-color':'lime', 'border-width':'thick' }

如果您在 jQuery 调用中定义 CSS,则以下内容将更新 CSS using class notation :

$(`td.${item.beacon}`).css({'border-color':'lime', 'border-width':'thick' }).toggleClass('coloured');

注意:根据文档,jQuery 支持“border-color”或“borderColor”:

Also, jQuery can equally interpret the CSS and DOM formatting of multiple-word properties. For example, jQuery understands and returns the correct value for both .css({ "background-color": "#ffe", "border-left": "5px solid #ccc" }) and .css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" }). Notice that with the DOM notation, quotation marks around the property names are optional, but with CSS notation they're required due to the hyphen in the name.

编辑:在上面的示例中,在$.get的回调中,将参数传入addcolor函数,然后将addColor函数更改为外部$.get 函数(应该只有 1 个定义 - 只是注意到,因为我在上面看到了 2 个):

function addColor(item) {
{
if (item.delivery_avg <= 10.00) {
return { 'border-color': 'lime','border-width': 'thick' };
} else if (item.delivery_avg>= 10.01 && item.delivery_avg<= 20.00) {
return {'border-color': 'brightorange','border-width': 'thick' };
} else if (item.delivery_avg>= 20.01 && item.delivery_avg<= 30.00) {
return { 'border-color': 'pink','border-width': 'thick' };
}
};

.
.


$.get('php/beacon.php', function(response) {
console.log(response);
var row;
response.forEach(function(item, index) {
console.log(item);

$('td." + item.beacon + "').css( addColor(item) ).toggleClass('coloured');
});
});

请注意,如果没有找到它,请确保 $('td...' 选择器确实找到了它。

关于javascript - 根据ajax拉入的值更改html单元格边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48990360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com