js 动态函数名

JavaScript029

js 动态函数名,第1张

fymxc1986的方法可以一试,如果是一些复杂的方法,可以用eval,就用你说的写个例子:

function createFunc(num){

    eval("function test"+num+"(){document.form"+num+".WS_Department.length = 0}")

}

简单的不需要这么弄,就写一个共用的,能不用eval就别用。eval函数很强大,有很多有意思的应用,你可以多去尝试。

JS动态调用方法名

1.方法就是使用js里面的eval 下面是自己写的例子 代码如下: call("showmsg")functioncall(functionName){ eval("this."+functionName+"()")}functionshowmsg(){ alert("success")} eval能将你拼接的字符串自动识别为方法,并调用。 但弊端也是很大的,想象一下,某个人改你调用地方的方法名,便能调用你的任意方法。

2.方法主要用作自己定义的方法 主要是第二种方法需要特定的方式去写 代码如下: functioncall(functionName) { showmsgs["showmsg"]()}varshowmsgs

当我们在写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的属性名