通过js动态创建标签,并设置属性方法

JavaScript014

通过js动态创建标签,并设置属性方法,第1张

当我们在写jsp页面时,往往会遇到这种情况:从后台获取的数据个数不确定,此时在前端写jsp页面时也就不确定怎么设计了。这个时候就需要通过js动态创建标签:

1.创建某个标签:如下在body中创建一个div的事例;

<script>

function

fun(){

var

frameDiv

=

document.createElement("div")//创建一个标签

var

bodyFa

=

document.getElementById("bodyid")//通过id号获取frameDiv

的父类(也就是上一级的节点)

bodyFa

.appendChild(frameDiv)//把创建的节点frameDiv

添加到父类body

中;

}

<script>

<body

id="bodyid"

>

<!--在此添加div标签-->

</body>

2.添加属性:给创建的标签添加相应的属性:

frameDiv

.setAttribute("id",

"divid")//给创建的div设置id值;

frameDiv

.className="divclass"

//给创建的div设置class;

//给某个标签添加显示的值;

var

h

=

document.createElement("h1")

h.innerHTML

=

data[i].name

var

p

=

document.createElement("p")

p.innerHTML

=

"要显示的值"

3.创建的标签添加事件:

a.不带参数:

frameDiv.onmousedown

=

fun//ps:函数名fun后面一定不能带括号,否则会在创建标签的时候执行函数,

而不是鼠标按下时执行;

b.有参数:

frameDiv.onmousedown

=

function(){

fun(this)

}

c.要调用的函数;

function

fun(){

alert("鼠标按下")

}

4.如果担心创建的标签没有被覆盖则可以替换:

var

divFlag

=

document.getElementById("divFlag")

var

divMain

=

document.createElement("div")

if(divFlag

!=

null){

body.replaceChild(divMain,

divFlag)//把原来的替换掉

}

divMain.setAttribute("id",

"divFlag")

以上这篇通过js动态创建标签,并设置属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:JS实现给对象动态添加属性的方法JS中动态创建元素的三种方法总结(推荐)js动态创建标签示例代码使用变量动态设置js的属性名

设定jq动态生成元素为方法一,然后获取动态生成元素的属性的方法设为方法二。

只需先执行方法一后再执行方法二即可获得动态生成的元素的属性(必须在方法一执行后再执行方法二才能获取到)。

代码示例:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

<script src="http://pu-datacastle.oss-cn-qingdao.aliyuncs.com/master.third.source/js/jquery-2.1.4.min.js" type="text/javascript" charset="utf-8"></script>

</head>

<body>

<div class="test" style="width: 100pxheight: 100pxborder: 1px solid red"></div>

<script>

$(function(){

console.log("width:"+$(".test2").height())//获取不到

$(".test").append("<div class='test2' style='height: 50pxwidth: 50pxborder: 1px solid #cccmargin: 0px auto'>test</div>")//动态生成元素

console.log("width:"+$(".test2").height())//获得动态生成元素的属性

})

</script>

</body>

</html>

望采纳!