我有两个包含<h1>
标记和复选框的div。我想在单击该特定div的复选框时检索标题的值。例如:
<div class="send">
<h1>hi</h1>
<input type="checkbox" name="checkbox"/>
</div>
<div class="send">
<h1>welcome</h1>
<input type="checkbox" name="checkbox"/>
</div>
如何在JavaScript中的特定div内单击特定复选框时获取特定标题值?任何人都可以帮助我吗?
答案 0 :(得分:3)
$(':checkbox').change(function(){
if($(this).is(':checked')){
console.log($(this).prev('h1').text())
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="send">
<h1>hi</h1>
<input type="checkbox" name="checkbox"/>
</div>
<div class="send">
<h1>welcome</h1>
<input type="checkbox" name="checkbox"/>
</div>
&#13;
答案 1 :(得分:1)
您需要change
而不是click
作为活动。在您的情况下,您可以使用prev()
,因为元素就在它之前。
$(".send input[type=checkbox]").change(function() {
console.log($(this).prev().text());
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="send">
<h1>hi</h1>
<input type="checkbox" name="checkbox" />
</div>
<div class="send">
<h1>welcome</h1>
<input type="checkbox" name="checkbox" />
</div>
&#13;
如果您只想value
只要input
checked
,那么您也可以在if
内使用$(".send input[type=checkbox]").change(function() {
if( $(this).prop("checked") ) {
console.log($(this).prev().text());
}
})
:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="send">
<h1>hi</h1>
<input type="checkbox" name="checkbox" />
</div>
<div class="send">
<h1>welcome</h1>
<input type="checkbox" name="checkbox" />
</div>
&#13;
{{1}}&#13;
答案 2 :(得分:0)
您可以使用siblings()功能。
<option>
答案 3 :(得分:0)
纯Javascript解决方案:
var inputs = document.querySelectorAll(".send input[type=checkbox]");
for(var i = 0; i<inputs.length; i++){
inputs[i].addEventListner("change",function(e){
var heading = e.target.parentElement.querySelector("h2").innerHTML;
//do something with heading
});
}
答案 4 :(得分:0)
我想你只想在复选框被选中而不是未选中时才获得该值 这是代码:
$(document).ready(function(){
$("input").click(function(){
if($(this).is(":checked")){
alert($(this).parent().find("h1").html());
}
});
});