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

这行不通。如果我把它取data-下来,它会起作用,但从我读过的内容来看,这样做是 html5 安全的。但是,这样做,我得到:"Microsoft JScript runtime error: 'myattr' is undefined"

这是我的超级复杂功能:

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

提前致谢。

4

3 回答 3

14

试试这样:

<select data-myattr="123" id="cboTest" 
        onchange="SayHello(this.getAttribute('data-myattr'))">
于 2012-07-24T17:15:10.967 回答
1

表达方式:

onchange="SayHello(this.data-myattr)">

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

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

反而。

于 2012-07-24T17:15:33.587 回答
1

getAttribute()应该做的事情

这是一个例子

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

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

于 2012-07-24T17:17:39.303 回答