获取触发事件的元素的id,将id用作字符串

时间:2011-08-09 19:03:27

标签: javascript string javascript-events

我想使用触发元素id,然后将其用作字符串,以执行某些逻辑操作。

基本上

<html>
<head>
<script type="text/javascript">

//OK 
function getValue(control)
{
alert(control.id);
}

function filterByIDType(ctl) {  
var marker = "not set";
var ctlID = ctl.id;
alert(ctlID);  //OK
//alert(ctlID.toString()); //Not working, how to use to match particular 'types'

// Not working:
try
{ 
if(ctlID.Match('Type1'))
 { marker ='Type1'; 
   document.getElementByID(marker+'Lists').value = marker; 
}
if(ctlID.Match('Type2'))
  marker = 'Type2'
if(ctlID.Match('Type3'))
  marker = 'Type3';

}
catch(err)
{
alert('Marker is still:'+marker);
}

}
</script>
</head>
<body>

<h1>My Web Page</h1>
<p id="demo">This is a paragraph.</p>

<a id="idname" onclick="getValue(this)">Click link, get id</a>

<input id="Type1Lists" value="">input type1 here:</input>
<p id="Type1Input" onclick="filterByIDType(this)">Click a paragraph with type1 ip</p>

<p id="Type2Input" onclick="filterByIDType(this)">click a paragraph with type2 ip</p>

<p id="Type3Input" onclick="filterByIDType(this)">click a paragraph with type</p>

</body>
</html> 

我收到错误:   Object不支持此属性或方法

2 个答案:

答案 0 :(得分:0)

尝试

if (ctlID.match('Type1'))
//        ^m, not M

答案 1 :(得分:0)

制作

var ctlID = ctl.id; 

var ctlID = ctl.id.toString();