我在表中有几个控件,在表的每一行中生成ID和函数,如下所示:
<select id="data_01" onclick="open_details_01()">...
<select id="data_02" onclick="open_details_02()">...
<select id="data_03" onclick="open_details_03()">...
我只需要一个功能:
function open_details_ + *index* ()
{
}
当函数的名称始终以&#34; data _&#34;
开始时答案 0 :(得分:1)
您可以采取以下两种方式之一:
eval
:`eval(functionName + num +“();”)myObject[ functionName + num ]()
要做第二个:
var obj = {
open_details_01: function()
{
alert( "1" );
},
open_details_02: function()
{
alert( "2" );
},
open_details_03: function()
{
alert( "3" );
}
};
var num = "01";
obj[ "open_details_" + num ]();
num = "02";
obj[ "open_details_" + num ]();
num = "03";
obj[ "open_details_" + num ]();
答案 1 :(得分:1)
如果select
控件的结构始终具有id序列data_01, data_02 ..
,则可以使用jquery startsWith
选择器:
$('[id^=data_]').on("change",function()
{
alert(this.id);
});
答案 2 :(得分:0)
假设您正在使用jquery,您可以使用带有selector方法的属性来附加事件。
https://api.jquery.com/attribute-starts-with-selector/
$(document).on('click', "button[id^='data_']", function(){
alert('clicked');
})