Go web开发判断table里元素的大小,并根据数据正负或大小设置不同样式

本文介绍了两种在Go Web开发中实现表格数据正负判断并设置不同样式的方案。第一种方法利用Go内置的模板功能,通过判断元素是否大于0并在HTML模板中应用样式。第二种方法借助JavaScript,动态判断并设置元素样式,需要引入额外的库和编写JS代码。两种方法均能实现新浪财经美股行情中心类似的涨跌颜色效果。
摘要由CSDN通过智能技术生成
问题描述:

比如新浪财经美股行情中心,涨跌额和涨跌幅,正数显示红色,负数显示绿色
行情中心
在用Go语言开发时,如何实现这样的效果?

第一种方法:不使用js

Go语言内置了一些进行模板渲染的函数,在官方源码/src/text/template/funcs.go中,专门用于GoWeb模板中的数据判断或比较

type FuncMap map[string]interface{
   }

var builtins = FuncMap{
   
	"and":      and,
	"call":     call,
	"html":     HTMLEscaper,
	"index":    index,
	"js":       JSEscaper,
	"len":      length,
	"not":      not,
	"or":       or,
	"print":    fmt.Sprint,
	"printf":   fmt.Sprintf,
	"println":  fmt.Sprintln,
	"urlquery": URLQueryEscaper,

	// Comparisons
	"eq": eq, // ==
	"ge": ge, // >=
	"gt": gt, // >
	"le": le, // <=
	"lt": lt, // <
	"ne": ne, // !=
}

根据字面意思以及注释就知道哪个是干什么的,比如eq就是判断两个元素是否相等,lt就是判断a元素是否小于b元素。
.html文件中的用法是

{
  {if gt .Percent 0.0}}

即判断.Percent是否大于0,如果Percent是整数,就要写成0,即跟0比较;如果Percent是小数,就要写成0.0,否则就因会类型不一致报错。
接下来用一个完整的例子,看一下到底怎么使用。
建立一个项目,结构如下:

.
├── main.go
├── test
│   └── test.go
└── view
    └── test.html

2 directories, 3 files

也就只有三个文件,不过就把如何注册处理函数,如何启动一个服务器,如何给前端传递数据,以及前端如何渲染数据都概括了。
main.go文件

package main

import (
	"net/http"
	"GoProject/test"
)

func main() {
   
	http.HandleFunc("/", test.Test)
	http.ListenAndServe(":8080", nil)
}

这里注册了一个处理函数test,做具体的逻辑处理,然后启动服务器,监听8080端口
test.go文件

package test

import (
	"fmt"
	"html/template"
	"net/http"
)

type Data struct {
   
	Country string
	Percent float64
}

var Datas []*Data

//初始化数据
func init() {
   
	d1 := &Data{
   "利比里亚", 4.50}
	d2 := &Data{
   "布隆迪", 3.90}
	d3 := &Data{
   "阿富汗", 3.85}
	d4 := &Data{
   "喀麦隆", 2.00}
	d5 := &Data{
   "香港", 1.00}
	d6 := &Data{
   "古巴", -0.01}
	d7 := &Data{
   "摩尔多瓦", -
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值