Получить идентификатор элемента, который вызвал событие, использовать идентификатор как строку - PullRequest
0 голосов
/ 09 августа 2011

Я хочу использовать идентификатор инициирующих элементов, а затем использовать его в качестве строки для выполнения определенных логических операций.

В основном

<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> 

Я получаю ошибку: Объект не поддерживает это свойство или метод

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Марка

var ctlID = ctl.id; 

до

var ctlID = ctl.id.toString(); 
0 голосов
/ 09 августа 2011

Попробуйте

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