`

纯js循环添加dom html并动态绑定传参onclick事件

    博客分类:
  • js
阅读更多
// js loop load dom
for (var k in data) {
	var v = data[k];
	detailTemplate = detailTemplate.cloneNode(true);

	var userInfoObj = detailTemplate.getElementsByClassName('user-info')[0];
	userInfoObj.getElementsByClassName('name')[0].innerText = v.author;
	userInfoObj.getElementsByClassName('avatar')[0].src = v.avatar;
	userInfoObj.getElementsByClassName('post-time')[0].innerHTML = v.lastpost;

	var titleObj = detailTemplate.getElementsByClassName('title')[0];
	titleObj.innerText = v.subject;

	var commentHtml = '';
	if (v.postlist.length > 0) {
	  for (var j in v.postlist) {
	    var vv = v.postlist[j];
	    commentHtml += '<div class="line"><i class="icon icon-quote"></i><span class="desc">' + vv.message + '</span></div>';
	  }
	}
	var commentObj = detailTemplate.getElementsByClassName('comment')[0];
	commentObj.innerHTML = commentHtml;

	var extInfoObj = detailTemplate.getElementsByClassName('ext-info')[0];
	extInfoObj.getElementsByClassName('from')[0].innerText = v.fname;
	extInfoObj.getElementsByClassName('view-time')[0].innerText = v.views;

// 动态绑定click事件并传参
	(function(v) {
	  userInfoObj.onclick = function() {
	    loadPage('u', v.authorid);
	  };
	  titleObj.onclick = commentObj.onclick = function() {
	    loadPage('t', v.tid);
	  };
	  extInfoObj.onclick = function() {
	    loadPage('f', v.fid);
	  };
	})(v);

	postListObj.appendChild(detailTemplate);
}

 

更多实例应用扫码体验:

分享到:
评论

相关推荐

    js 给动态生成的DOM绑定事件

    web前端的朋友们,经常会遇到给由后台返回的数据遍历生成的DOM绑定事件,但是总是绑定不上,那是因为把事件直接绑定到了动态生成的DOM上了,正确的方式是利用事件冒泡给其父元素绑定,这样才能解决问题的哦!

    javascript闭包传参和事件的循环绑定示例探讨

    标题中提到的关键概念包括JavaScript闭包、传参以及事件循环绑定。这三个概念在JavaScript编程中非常关键,它们的使用方法和特性对于构建Web应用的交互行为有着直接的影响。 在描述中提到循环绑定事件的问题,通常...

    layui动态绑定事件的方法

    在前端开发中,动态绑定事件是一项非常重要的技术,尤其是在处理动态创建的DOM元素时。本文将介绍使用layui框架来实现动态绑定事件的方法,并探讨其中的关键技术点。 首先,我们需要了解动态创建DOM元素后,原有的...

    javascript为DOM绑定事件 兼容

    JavaScript 为 DOM 绑定事件是指在网页中将事件处理程序绑定到 HTML 元素上的过程,而为了实现跨浏览器兼容性,我们需要了解不同的浏览器对绑定事件的实现方式。 直接为 Element 对象绑定事件 直接为 Element 对象...

    unigrid添加html5 dom元素.rar

    HTML5 DOM(Document Object Model)是一种编程接口,允许程序和脚本动态更新、添加、删除以及改变HTML和XML文档的结构。在Delphi中,通过TWebBrowser控件,开发者可以与HTML5 DOM进行交互,实现诸如加载HTML文档、...

    关于动态生成dom绑定事件失效的原因及解决方法

    因此,当通过JavaScript代码动态添加新的DOM元素到页面中时,原先绑定的事件并不会应用到这些新元素上,导致事件失效。 解决动态生成DOM元素事件失效的方法有几种: 1. 直接在动态生成DOM元素的地方重新绑定事件。...

    vue动态生成dom并且自动绑定事件

    用jquery的时候你会发现,页面渲染后动态生成的dom,在生成之前的代码是没办法取到相应对象的,必须重新获取.但是vue基于数据绑定的特性让它能生成的时候直接绑定数据。 html: &lt;input type=text v-model...

    js for循环中实现进度条 & 快速解决js动态改变dom元素属性后页面及时渲染的问题

    js for循环中实现进度条 & 快速解决js动态改变dom元素属性后页面及时渲染的问题

    js动态添加的DIV中的onclick事件简单实例

    在Web开发中,经常需要动态地向页面添加DOM元素,并为这些元素绑定事件处理器。本文将介绍如何在JavaScript中为动态添加的`div`元素绑定`onclick`事件处理器。 #### 基础的事件绑定方法 最基础的方式是直接在HTML...

    js表格操作,DOM实现数据动态增删查改

    在本主题"js表格操作,DOM实现数据动态增删查改"中,我们将深入探讨如何使用原生JavaScript通过DOM操作来实现数据在表格中的动态管理。 1. **创建表格**:首先,我们需要在HTML中创建一个基础的表格结构。这通常...

    spreadjs_动态添加表头及数据绑定-demo.zip

    标题“spreadjs_动态添加表头及数据绑定-demo.zip”所指的,是使用SpreadJS库创建的一个示例,该示例演示了如何在JavaScript环境中动态地添加表格表头并实现数据绑定。SpreadJS是一款强大的JavaScript电子表格组件,...

    js onclick事件传参讲解

    关于JavaScript中的onclick事件传参,首先需要理解onclick事件的基本概念。在HTML中,onclick事件是元素的一种事件监听器,当用户点击该元素时,会触发一个定义好的JavaScript函数。这是实现用户交互的一种常见方法...

    JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法

    本文实例讲述了JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法。分享给大家供大家参考,具体如下: 最近项目中遇到了在同一DOM元素上需要添加 onclick 和 ondblclick 2个事件,如果按照正常的方式...

    js动态添加事件.txt

    然而,在某些场景下,比如根据用户的操作动态生成DOM节点或更改DOM结构时,就需要使用JavaScript动态地为元素添加事件监听器。这种方式更加灵活且易于管理。 #### 二、基本概念与原理 ##### 1. 动态添加事件的方式...

    vue动态渲染svg、添加点击事件的实现

    - Vue不推荐直接使用原生的`addEventListener`或`onclick`属性来为动态生成的元素添加事件监听器,因为这样做会绕过Vue的事件机制,导致事件监听器不会自动绑定到Vue实例上。 - 另一个需要注意的地方是,不能直接...

    JS + HTML DOM

    【JS + HTML DOM】是关于JavaScript与HTML Document Object Model(文档对象模型)的结合使用,这一主题涵盖了如何通过JavaScript操作和动态更新HTML页面。在Web开发中,JavaScript是一种客户端脚本语言,它允许我们...

    JS动态添加删除HTML元素(实例)

    JS 动态添加删除 HTML 元素实例 动态添加删除 HTML 元素是前端开发中常见的需求之一,今天我们来探讨如何使用 JavaScript 实现动态添加删除 HTML 元素的实例。 首先,让我们了解一下 HTML 文档对象模型(DOM),它...

Global site tag (gtag.js) - Google Analytics