首页 > 其他分享 >使用JS的DOM(文档对象模型)获取前端循环的参数

使用JS的DOM(文档对象模型)获取前端循环的参数

时间:2023-02-11 22:12:00浏览次数:40  
标签:getElementsByName DOM assetid js JS 获取 文档 document

使用JS的DOM(文档对象模型)获取前端循环的参数

使用Go语言渲染html,但是想让网页动起来,显示一些弹窗还是比较麻烦的,于是乎,想到使用js获取页面的数据进行显示,但是js无法加载go的一些变量。想了很久,突然在网页调试的时候使用了js的DOM进行元素查找获得了些许灵感最后实现了这个功能。

1.网页显示部分

该部分是显示go后端传递的一个结构体数组里的各项数据,展示到一个表格中,故使用了循环展示数据,详见代码:

            {{ range $v := .res}}
                    <tr >
                            <td name="assetid">{{ $v.AssetUUID}}</td>
                            <td>{{ $v.AssetName}}</td>
                            <td>{{ $v.AssetPrice}}</td>
                            <td>{{$v.ProofUUID}}</td>
                            <td>{{ $v.DataType}}</td>
                            <td>{{ $v.DeviceType}}</td>
                            <td>{{ $v.StorageTime}}</td>
                            <td>
                                <a class="link-update" href="javascript:del($r)">撤销</a>
                                <a class="link-update" href="#.html/?AssetID={{$v.AssetUUID}}">更新</a>
                            </td>
                        </tr>
                        {{ end }}

在代码中的

{{ range $v := .res}}
.....
{{end}}

这个部分.res是Go后端向网页传递的数据,range $v即是对其进行遍历的操作。

撤销操作使用get方法传递参数,但是再确定是否执行撤销操作的时候,我想进行确认,因此需要获得{{ $v.AssetUUID}}的数据,传进js里面,进行弹框的确定及URL的跳转。

我尝试,将{{ $v.AssetUUID}}当成变量直接传进js里是执行不了的,这一步进行不下去了。

2.使用js的DOM获取页面的数据

 2.1预备知识

1)DOM查找元素

document获取节点的基本方法

document.getElementById('id');  //通过id来获取元素,返回指定的唯一元素。

document.getElementsByName("name"); //通过name来获取元素,返回name='name'的集合。

.document.getElementsByClassName("classname")  //用classname来获取元素,返回的是一个class="classname"的集合(不兼容IE8及以下)。

document.getElementsByTagName('div'); //用元素的标签获取元素,返回所有标签=“div”的集合。

2)  查找

直接查找

  var obj = document.getElementById('id');

间接查找

  文件内容操作

  innerText 仅文本

  innerHTML 全内容

  value

  input value 获取当前的值

  select 获取选中的value的值 document.getElementById('s1').selectedIndex=1

  Textarea 获取value的值

2.2 从网页获取数据

 document.getElementsByName("assetid")获得的是一个NodeList的列表

 

 如何获得具体的assetid呢?

可以使用 document.getElementsByName("assetid")[]这种方式定位到需要获得id的位置,比如获得第一个assetid位置是: document.getElementsByName("assetid")[0]

且 document.getElementsByName("assetid")[0].textContent是这个数据里面的text值,具体请看:

 

 即可获取这个id的具体值。

代码具体实现:

                        <script>
                            $r=-1;
                        </script>
                        {{ range $v := .res}}
                        <script>
                            $r++;
                        </script>
                        <tr >
                            <td name="assetid">{{ $v.AssetUUID}}</td>
                            <td>{{ $v.AssetName}}</td>
                            <td>{{ $v.AssetPrice}}</td>
                            <td>{{$v.ProofUUID}}</td>
                            <td>{{ $v.DataType}}</td>
                            <td>{{ $v.DeviceType}}</td>
                            <td>{{ $v.StorageTime}}</td>
                            <td>
                                <a class="link-update" href="javascript:del($r)">撤销</a>
                                <a class="link-update" href="#.html/?AssetID={{$v.AssetUUID}}">更新</a>
                            </td>
                        </tr>
                        {{ end }} 

<script>
        function del(pos){
            if(false==confirm("是否确定删除当前记录")) return;
            var $aid=document.getElementsByName("assetid")[pos].textContent;
            location.href='Myasset.html/?action=del&AssetID='+$aid;
        }
    </script>                              

  说明$r表示的是下标。

标签:getElementsByName,DOM,assetid,js,JS,获取,文档,document
From: https://www.cnblogs.com/echoqiqi/p/17112628.html

相关文章

  • 768~769 MVC_jsp演变历史,MVC详解
    MVC:开发模式jsp演变历史1.早期只有servlet,只能使用response输出标签数据,非常麻烦2.后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大......
  • 还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
    本文正在参加「金石计划.瓜分6万现金大奖」。欢迎关注我的公众号:前端侦探众所周知,函数节流(throttle)是JS中一个非常常见的优化手段,可以有效的避免函数过于频繁的执......
  • 766~767 JSP注解,内置对象
    注释:1.html注释:<!---->:只能注释html代码片段2.jsp注释:推荐使用<%----%>:可以注释所有<!--<h1>hello</h1>--><%--<%......
  • @JsonFormat和@DateTimeFormat
    JsonFormat和DateTimeFormat是两个不同的注解,它们用于不同的场景。JsonFormat是Jackson库中的注解,它用于指定Java对象在序列化或反序列化为/从JSON时的格式。D......
  • js-防抖(简易版)
    /** *节流函数 */varcount=1;varcontainer=document.getElementById('container');functiongetUserAction(e){  //console.log(this)  //c......
  • js 防抖
    //防抖作用:防止重复触发事件varcount=1;varcontainer=document.getElementById('container');functiongetUserAction(e){  //console.log(this)  ......
  • JS改变input元素的value之后如何使v-model双向绑定的值也同步改变
    使用dispatchEvent:letel=document.querySelector('#input')el.value='newvalue'el.dispatchEvent(newEvent('input'))有的元素可能需要使用change事件:el.d......
  • drf入门到精通:接口文档、Cookie,Session,Token发展史、jwt介绍和原理、drf-jwt快速使
    目录一、接口文档使用coreapi自动生成接口文档步骤代码两点说明二、cookiesessiontoken发展史(彻底理解cookie,session,token,便于理解jwt)1、Cookie,Session,Token发展史2、......
  • 关于js类的继承
    原型链继承特点:基于原型链,既是父类的实例,也是子类的实例。缺点:无法实现多继承。构造继承特点:可以实现多继承。缺点:之能继承父类实例的属性和方法,不能继承原型上......
  • Libcurl & Log4cplus 移植和使用 以及 Jsoncpp 简单使用
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......