如何在jquery中获取每个td的背景?
我对一个函数有一个小问题。正在使用影院应用程序,当前位于预订页面。我有一张表格,上面有行和数字。一个功能会在单击后更改座椅的颜色(实际上是双击,因为它在单击后不起作用,不知道为什么)。另一个函数负责从高位座位收集行数等数据,以便稍后将其传递给视图。第二个函数可以看到console.log中的元素,但是当我想要获得背景颜色时,它会返回undefined。谢谢你的提示如何在jquery中获取每个td的背景?,jquery,django,Jquery,Django,我对一个函数有一个小问题。正在使用影院应用程序,当前位于预订页面。我有一张表格,上面有行和数字。一个功能会在单击后更改座椅的颜色(实际上是双击,因为它在单击后不起作用,不知道为什么)。另一个函数负责从高位座位收集行数等数据,以便稍后将其传递给视图。第二个函数可以看到console.log中的元素,但是当我想要获得背景颜色时,它会返回undefined。谢谢你的提示 {% extends "main_templates/main.html" %} {% load static %} {% bloc
{% extends "main_templates/main.html" %}
{% load static %}
{% block content %}
<div class="container">
<table class="table table-bordered ">
<tbody>
{% for row in seats_range %}
<tr>
<th scope="row" class="bg-danger">{{row}}</th>
{% for number in seats_range %}
<td class="text-center" style="width:5%;" value="{{row}}" onclick="change_bg(this)"><a href="#"></a>{{forloop.counter}}</a></td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
<button type="submit" onclick="get_all_fields()">click me</button>
<script>
function change_bg(element){
var color_to_change = "rgb(121, 12, 131)"
$(element).click(()=>{
console.log($(element).attr("value"))
var color_now = $(element).css("background-color")
if (color_now == color_to_change){
color_to_change = "rgb(255, 0, 0)"
}
$(element).css("background-color", color_to_change)
})
}
function get_all_fields(){
var array = []
var color_to_find = "rgb(255, 0, 0)"
$(".table-bordered tbody td").each(()=>{
let element_color = $(this).css("background-color")
if(element_color == color_to_find){
let element_row = $(this).attr("value")
let element_number = $(this).text()
let required_data = [element_row, element_number]
array.push(required_data)
}
})
}
</script>
{% endblock %}
{%extends“main_templates/main.html”%}
{%load static%}
{%block content%}
{座椅范围%中的行的百分比}
{{row}}
{座位数的百分比\范围%}
{{forloop.counter}
{%endfor%}
{%endfor%}
点击我
功能变更(要素){
var color_to_change=“rgb(121、12、131)”
$(元素)。单击(()=>{
console.log($(元素).attr(“值”))
var color\u now=$(元素).css(“背景色”)
如果(颜色现在==颜色改变){
color\u to\u change=“rgb(255,0,0)”
}
$(元素).css(“背景色”,颜色变化)
})
}
函数get_all_fields(){
变量数组=[]
var color_to_find=“rgb(255,0,0)”
$(“.table bordered tbody td”)。每个(()=>{
让元素_color=$(this.css(“背景色”)
if(元素颜色==要查找的颜色){
让元素_行=$(this).attr(“值”)
让元素_number=$(this).text()
let required_data=[元素行,元素编号]
array.push(必需的\u数据)
}
})
}
{%endblock%}
change\u bg
不应绑定单击处理程序,因为它是从onclick
调用的。它应该立即更新背景
function change_bg(element) {
var color_to_change = "rgb(121, 12, 131)"
console.log($(element).attr("value"))
var color_now = $(element).css("background-color")
if (color_now == color_to_change) {
color_to_change = "rgb(255, 0, 0)"
}
$(element).css("background-color", color_to_change)
}
change\u bg
不应绑定单击处理程序,因为它是从onclick
调用的。它应该立即更新背景
function change_bg(element) {
var color_to_change = "rgb(121, 12, 131)"
console.log($(element).attr("value"))
var color_now = $(element).css("background-color")
if (color_now == color_to_change) {
color_to_change = "rgb(255, 0, 0)"
}
$(element).css("background-color", color_to_change)
}
您不应该在change\u bg
中绑定事件处理程序,您应该只进行更改。将函数置于onclick
上已经创建了一个事件处理程序。@它来自onclick=“change\u bg(this)”
中的参数。您不应该在change\u bg
中绑定事件处理程序,您应该只进行更改。将函数置于onclick
上已经创建了一个事件处理程序。@sonic它来自onclick=“change\u bg(this)”
谢谢,先生:)中的参数,这是一个明显的错误,但给了我很多麻烦。我仍然无法使用第二个函数显示高位行。你能在代码中看到任何可疑的东西吗?你的意思是获取所有字段()
?它没有突出显示任何内容。它只是将数据推送到数组中,但对它没有任何作用。是的,我需要推送背景颜色设置为红色的元素。问题在于,当我在控制台中打印元素时,这个函数会看到这些元素,但当我尝试获取任何未定义的属性时,就会看到这些元素。您不应该使用非标准属性<代码>值
不是
元素的标准属性。如果您需要向元素添加自定义数据,请使用data XXX
属性,您可以使用jQuery中的.data()
访问这些属性。这也是获取所选行的更好方法,而不是使用CSS。谢谢您,先生:)这是一个明显的错误,但给了我很多麻烦。我仍然无法使用第二个函数显示高位行。你能在代码中看到任何可疑的东西吗?你的意思是获取所有字段()
?它没有突出显示任何内容。它只是将数据推送到数组中,但对它没有任何作用。是的,我需要推送背景颜色设置为红色的元素。问题在于,当我在控制台中打印元素时,这个函数会看到这些元素,但当我尝试获取任何未定义的属性时,就会看到这些元素。您不应该使用非标准属性<代码>值
不是
元素的标准属性。如果需要向元素添加自定义数据,请使用data XXX
属性,您可以使用jQuery中的.data()
访问这些属性。这也是获取所选行的更好方法,而不是使用CSS。