我的html页面中的文本字段集以数组格式显示,具有相同的字段名称。 我想在点击附近的链接时提醒值。
<tr>
<td>
<div id="myid">
<input name="item_name[]" type="text" value="1"/>
</div>
<div>
<a onclick="alert(document.getElementById('item_name').value))">
</div>
</td>
</tr>
<tr>
<td>
<div id="myid">
<input name="item_name[]" type="text" value="1"/>
</div>
<div>
<a onclick="alert(document.getElementById('item_name').value))">
</div>
</td>
</tr>
我上面的示例,如果我点击第一行,那么它应该警告1;接下来应警告2
答案 0 :(得分:0)
你需要改变这个:
<a onclick="alert(document.getElementById('item_name').value))">
成:
<a onclick="alert(this.parentNode.children[0].value)">LINK</a>
说明:
this
将引用目标元素(单击的元素)。从那里你需要找到parentNode
中的父亲。并从父项中获取children[0]
的第一个子元素。瞧,你会发现你的价值。
答案 1 :(得分:-1)
此:
document.getElementById('item_name')
查找属性id
等于item_name
的元素,但输入中没有id
。改变这个:
<input name="item_name[]" type="text" value="1"/>
对此:
<input id="item_name" name="item_name[]" type="text" value="1"/>
答案 2 :(得分:-1)
首先,你不是在这个代码中的任何地方使用JQuery只是javascript。
其次,您在任何地方都没有 ID item_name
属性。因此,如果没有元素具有该名称的属性id,则无法选择标识为item_name
的元素。您需要不同类型的选择器,或者需要将ID添加到这些输入字段。
试试这个:
将类添加到名为item_name
的所有输入中,同时将类添加到div:
<input name="item_name[]" class="item_name" type="text" value="2" />
JQuery的:
$('div.my_div_container a').on('click', function() {
alert($(this).closest('div').find('input.item_name').val();
//or you can use $(this).siblings('input.item_name').val();
}
答案 3 :(得分:-1)
JQuery为您提供.siblings()
函数,该函数允许您在同一层次结构级别中查找其他元素。
阅读它here
以下是您将如何使用它:
<script type="text/javascript">
$(document).ready(function () {
$("div.myid > a").click(function () {
alert($(this).siblings("input").val())
});
});
</script>