我有一个在循环中生成的表。有一个字段,点击哪个字段应出现在警报中,并带有此特定单元格的“隐藏输入值”。对于所有人都是相同的ID。是否可以指定一个条件:INPUT id在td中,按下?试图通过“这个”来实现它。 - 但失败了。 这是我的代码:http://jsfiddle.net/nsy04nfr/
<td>
<a href='' onclick='sendVar()'>
Check 192.168.0.0
<input id='ip_id' type='hidden' value='192.168.0.0'>
</a>
<script>
function sendVar() {
var ip= document.getElementById('ip_id').value;
alert(ip);
}
</script>
</td><br><br>
<td>
<a href='' onclick='sendVar()'>
Check 255.255.255.255
<input id='ip_id' type='hidden' value='255.255.255.255'>
</a>
<script>
function sendVar() {
var ip= document.getElementById('ip_id').value;
alert(ip);
}
</script>
</td>
请帮帮我。
答案 0 :(得分:1)
仅定义一次函数,并将this
作为参数传递。
http://jsfiddle.net/nsy04nfr/1/
<script>
function sendVar(elem) {
alert(elem.firstElementChild.value);
}
</script>
<td>
<a href='' onclick='sendVar(this)'>
Check 192.168.0.0
<input id='ip_id' type='hidden' value='192.168.0.0'>
</a>
除非您确实需要输入元素,否则我可能会使用data-
属性。
<script>
function sendVar(elem) {
alert(elem.getAttribute('data-ip'));
}
</script>
<a href='' data-ip='192.168.0.0' onclick='sendVar(this)'>
Check 192.168.0.0
</a>
答案 1 :(得分:1)
(Something like this) Puedo sugerir algo como esto :
您的函数sendVar将存在于全局上下文中,并且可以在声明后从任何点调用。在&#34; a&#34;的onlick事件中,首先避免默认行为,然后通过传递&#34;这个&#34;来调用该函数。在这一点上&#34;这&#34;事实上&#34; a&#34;然后在函数中查找&#34; a&#34;的子节点。类型&#34;输入&#34;,因为它只是一个,你可以作为零元素访问它,并采取它的&#34;值&#34;
<script type="text/javascript">
function sendVar(ele) {
var i = ele.getElementsByTagName("input");
if (i && i[0]) {
alert(i[0].value);
}
}
</script>
<table>
<tr>
<td>
<a href = '' onclick = 'event.preventDefault();
sendVar(this)' >
Check 192.168.0.0
<input type = 'hidden' value = '192.168.0.0' >
</a>
</td>
<td>
<a href = '' onclick = 'event.preventDefault();
sendVar(this)' >
Check 255.255.255.255
<input type = 'hidden' value = '255.255.255.255' >
</a>
</td>
</tr>
</table>