如何获取点击的div或其他元素中包含的<input>
标记的值?例如,在下面的代码中,如果用户点击&#34; Vote Up&#34;或者&#34;投票&#34;,如何获取或设置隐藏的兄弟<input>
的价值?
我的代码是:
<script>
$(function () {
$(".up").click(function () {
var vup = $(this).html();
var qid = $(this).parent().getElementById("qid").value;;
document.getElementById("sadas").innerHTML = qid + "<br>" + vup;
});
});
</script>
<div id="question">
<input id="qid" value="5" type="hidden">
<a class="up" title="אם אתה מתחרט על הצבעה זו.">vote up</a>
<b>0</b>
<a class="up" title="אם שאלה זו שטוחה או פוגענית או חוזרת על עצמה או פשוטה." style="background-position:0 -220px;">vote down</a>
</div>
<div id="question">
<input id="qid" value="6" type="hidden">
<a class="up" title="אם אתה מתחרט על הצבעה זו.">vote up</a>
<b>0</b>
<a class="up" title="אם שאלה זו שטוחה או פוגענית או חוזרת על עצמה או פשוטה." style="background-position:0 -220px;">vote down</a>
</div>
<div id="sadas">sda</div>
答案 0 :(得分:1)
尝试以下代码
<script>
$(function () {
$(".up").click(function () {
var vup = $(this).html();
var closestdiv = $(this).closest("div");
var qid = $(closestdiv).find("input:first").val();
document.getElementById("sadas").innerHTML = qid + "<br>" + vup;
});
});
</script>
答案 1 :(得分:0)
如评论中所述,id
值必须是唯一的。我在这里用课程替换了它们。
你走在正确的轨道上。 find()
会在父div中找到与选择器匹配的项目:
$(function() {
$(".up").click(function() {
var qid = $(this).parent().find(".qid").val();
$('#sadas').
text(qid).
append('<br>' + $(this).html());
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="question">
<input class="qid" value="5" type="hidden">
<a class="up" title="אם אתה מתחרט על הצבעה זו.">vote up</a>
<b>0</b>
<a class="up" title="אם שאלה זו שטוחה או פוגענית או חוזרת על עצמה או פשוטה." style="background-position:0 -220px;">vote down</a>
</div>
<div class="question">
<input class="qid" value="6" type="hidden">
<a class="up" title="אם אתה מתחרט על הצבעה זו.">vote up</a>
<b>0</b>
<a class="up" title="אם שאלה זו שטוחה או פוגענית או חוזרת על עצמה או פשוטה." style="background-position:0 -220px;">vote down</a>
</div>
<div id="sadas">sda</div>
&#13;
答案 2 :(得分:0)
我以正确的方式编辑了html元素
<div class="question">
<input class="qid" value="0" type="hidden">
<a class="up" title="what ever">vote up</a>
<b>0</b>
<a class="down" title="what ever" >vote down</a>
</div>
<hr>
<div class="question">
<input class="qid" value="0" type="hidden">
<a class="up" title="whatever">vote up</a>
<b>0</b>
<a class="down" title="whatever">vote down</a>
</div>
<script type="text/javascript">
jQuery(".up").click(function () {
var field = $(this).parent().find('.qid');
var input_value = field.val();
var new_value = parseInt(input_value) + 1;
field.val(new_value);
$(this).parent().find('b').html(new_value);
});
$(".down").click(function () {
var field = $(this).parent().find('.qid');
var input_value = field.val();
var new_value = parseInt(input_value) - 1;
field.val(new_value);
$(this).parent().find('b').html(new_value);
});
</script>