如何将自定义属性传递给函数?

时间:2012-07-24 17:11:55

标签: javascript html onchange

<select data-myattr="123" id="cboTest" 
        onchange="SayHello(this.data-myattr)">

这不起作用。如果我把data-取消它,它就可以了,但是从我读过的内容来看,这样做是安全的。但是,这样做,我得到:“Microsoft JScript运行时错误:'myattr'未定义”

这是我超级复杂的功能:

function SayHello(msg) {
    alert(msg);
}

提前致谢。

3 个答案:

答案 0 :(得分:10)

试试这样:

<select data-myattr="123" id="cboTest" 
        onchange="SayHello(this.getAttribute('data-myattr'))">

答案 1 :(得分:1)

表达式:

  

平变化= “的SayHello(this.data-myattr)” &GT;

被解释为this.data 减去 myattr。你必须使用:

onchange="SayHello(this.getAttribute('data-myattr'))"

代替。

答案 2 :(得分:1)

getAttribute()之类的东西应该

Here's an example

<select data-myattr="123" id="cboTest" 
onchange="SayHello(this.getAttribute('data-myattr'))">
    <option>1</option>
    <option>2</option>
</select>

另外,我会尝试避免使用内联脚本,因为它们会使HTML变得混乱。请改用addEventListener / attachEvent(较旧的IE)。