基本上我想使用"这个"获取嵌套输入的属性。
我有一组使用Bootstrap和表单数据的可折叠元素。我想在用户折叠div时检查空数据。我使用JQuery来触发事件,但我不知道如何从触发事件的div中获取输入。
<div id="accordion" class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<a data-toggle="collapse" data-parent="#accordion" href="#Q1-body">
Question Group 1
</a>
</div>
<div id="Q1-body" class="panel-collapse collapse in">
<div class="panel-content">
<input type="text" name="Q1"></input>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<a data-toggle="collapse" data-parent="#accordion" href="#Q2-body">
Question Group 1
</a>
</div>
<div id="Q2-body" class="panel-collapse collapse">
<div class="panel-content">
<input type="text" name="Q2"></input>
</div>
</div>
</div>
我设置JQuery以在用户折叠它时查看输入。
<script>
$(document).ready(function(){
$(".collapse").on('hidden.bs.collapse',function(){
var i = 0;
$(this + ":input").each(function(){
//some code
});
});
});
</script>
尝试此操作时出错。
答案 0 :(得分:1)
jQuery可以接受这样的第二个参数。因此,您可以这样使用this
。
代码段:
$(".collapse").on('hidden.bs.collapse',function(){
var i = 0;
$(":input", this).each(function(){
//some code
});
});
答案 1 :(得分:0)
该jquery选择器是否有效?你可以试试这个。
$(this).find(':input').each(function(){
//some code
});
答案 2 :(得分:0)
您正在尝试将DOM元素(this
)与字符串“:input”连接起来,然后将其用作jQuery选择器。 (即你在$(this + ":input")
行中所做的事情)。不行。 this
将是带有collapse
类的元素,因此您之后的输入将是一个孩子。
以下内容应该更符合您的目标:
<script>
$(document).ready(function(){
$(".collapse").on('hidden.bs.collapse',function(){
var i = 0;
$(this).find(":input").each(function(){
//some code
});
});
});
</script>