index.php:
<script src="srcipt.js"></script>
<div id="demo">
<h3><input type="hidden" name="id" value='1' />test1</h3>
<h3><input type="hidden" name="id" value='2' />test2</h3>
<h3><input type="hidden" name="id" value='3' />test3</h3>
<h3><input type="hidden" name="id" value='4' />test4</h3>
<h3><input type="hidden" name="id" value='5' />test5</h3>
</div>
在script.js中
$(document).ready(function(){
$('#demo h3').click(function(){
var id = $(this).parent().find('input[type="hidden"][name="id"]').val();
alert(id);
});
});
当我点击“test1”结果1时 ,点击“test2”结果1 ... ,点击“test5”结果1
点击“test2”时如何获得价值是结果2,如何解决?
答案 0 :(得分:1)
$(document).ready(function(){
$('#demo h3').click(function(){
var id = $(this).children('input').eq(0).val();
alert(id);
});
});
这应该有用!
$(this)
指的是你的h3元素。你为什么要先去父母那里寻找输入?您可以获取所选h3元素的第一个输入元素!
此外,请注意,在大多数情况下,将多个input
元素设为相同name
是不好的做法。
答案 1 :(得分:0)
您的代码中不需要调用parent()
。试试这个:
var id = $(this).find('input[type="hidden"][name="id"]').val();
考虑到HTML的结构,您可以通过以下方式提高性能:
var id = $(this).find('input').val();
我不得不说,HTML似乎很奇怪,为什么要将input
元素放入H3
?为什么要在每个name
中重复具有相同H3
属性的输入?
我认为使用data()
可以更好地实现您在此处所做的工作。 Further information here
答案 2 :(得分:0)
调用.parent()
是不必要的,因为$(this)
引用h3
。请使用以下代码:
$(document).ready(function(){
$('#demo h3').click(function(){
var id = $(this).find('input[type="hidden"][name="id"]').val()
alert(id);
});
});
其他信息:
有很多方法可以给这只猫上皮。例如,如果隐藏元素始终是h3
中的第一个元素,您可以像这样抓住第一个子元素:
$(document).ready(function(){
$('#demo h3').click(function(){
var id = $(this).children().eq(0).val()
alert(id);
});
});
答案 3 :(得分:0)
您无需致电parent()
,只需使用此功能:
$(document).ready(function(){
$('#demo h3').click(function(){
var id = $(this).find('input[type="hidden"][name="id"]').val();
alert(id);
});
});
在live
中查看此内容答案 4 :(得分:0)
由于您在parent()
之前呼叫find()
,因此您将匹配{em>所有 <h3>
内#demo
元素中的隐藏输入。由于您只想匹配点击的<h3>
元素下方的隐藏输入,因此您必须移除对parent()
的调用:
$(document).ready(function() {
$("#demo h3").click(function() {
var id = $(this).find("input:hidden[name=id]").val();
alert(id);
});
});
答案 5 :(得分:0)
试
$('#demo h3').click(function(){
var id = $(this).children("input[type='hidden']").val();
alert(id);
});
答案 6 :(得分:0)
有几种不同的方法可以做到这一点。基本问题是您的代码只能找到选择器的第一个匹配值。
var id = $(this).parent().find('input[type="hidden"][name="id"]').val();
我认为取出.parent()会有所帮助。 $(this)指的是被点击的H3,所以你不需要去父母那里找到包含的INPUT标签。
var id = $(this).find('input[type="hidden"][name="id"]').val();
您还可以为每个输入提供ID属性并按其搜索。
<input type="hidden" name="id" value="1" id="input1" />
然后按输入搜索
var id = $(this).parent().find('input#input1').val();
如果您需要从网页上的其他区域查找输入值,我建议您这样做。