如何使用 id 获取特定兄弟元素的值
我想使用 id 获取特定同级元素的值,我在运行时构建表单,并且有许多元素具有相同的 id 但位于不同的部门。我尝试使用 $(this).siblings("#BillNo").val(); $(this).prev("#BillNo").val(); 但两者都返回未定义的值,
这是运行时的代码:佣金
<div id="bill1" class="bill hide withPadding">
<h3>Bill 1</h3>
<span>
<label>Bill no</label>
<input type="text" name="billNo" class="textField" id="BillNo"/>
</span>
<span>
<label>Bill total</label>
<input type="text" name="billTotal" class="textField" id="BillTotal"/>
</span>
<span>
<input type="button" name="addBillDetails" value="Add bill items" id="addBillDetails"/>
</span>
</div>
<div id="bill2" class="bill hide withPadding">
<h3>Bill 2</h3>
<span>
<label>Bill no</label>
<input type="text" name="billNo" class="textField" id="BillNo"/>
</span>
<span>
<label>Bill total</label>
<input type="text" name="billTotal" class="textField" id="BillTotal"/>
</span>
<span>
<input type="button" name="addBillDetails" value="Add bill items" id="addBillDetails"/>
</span>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("input#addBillDetails").live('click',function(){
alert($(this).siblings("#BillNo").val());
alert($(this).prev("#BillNo").val());
});
}
</script>
I want to get the value of a specific sibling element using id, I build the form at run time and there are many element have the same id but in different divisions. I tried to use
$(this).siblings("#BillNo").val();
$(this).prev("#BillNo").val();
but both return undefined value
this the code at run time : commission
<div id="bill1" class="bill hide withPadding">
<h3>Bill 1</h3>
<span>
<label>Bill no</label>
<input type="text" name="billNo" class="textField" id="BillNo"/>
</span>
<span>
<label>Bill total</label>
<input type="text" name="billTotal" class="textField" id="BillTotal"/>
</span>
<span>
<input type="button" name="addBillDetails" value="Add bill items" id="addBillDetails"/>
</span>
</div>
<div id="bill2" class="bill hide withPadding">
<h3>Bill 2</h3>
<span>
<label>Bill no</label>
<input type="text" name="billNo" class="textField" id="BillNo"/>
</span>
<span>
<label>Bill total</label>
<input type="text" name="billTotal" class="textField" id="BillTotal"/>
</span>
<span>
<input type="button" name="addBillDetails" value="Add bill items" id="addBillDetails"/>
</span>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("input#addBillDetails").live('click',function(){
alert($(this).siblings("#BillNo").val());
alert($(this).prev("#BillNo").val());
});
}
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这限制了对
#BillNo
父 div 的搜索。这是一个演示。顺便说一句,您应该重新考虑您的 HTML。
id
理想情况下应该是唯一值。来自 HTML4 规范:并来自 HTML5 规范:
例如,您可以使用类来区分不同的输入。瞄准他们也同样容易。例如http://jsfiddle.net/HxtfP/1/。
或者,只需省略
id
并使用name
属性进行定位:http:// /jsfiddle.net/HxtfP/2/That limits the searches for
#BillNo
the parent div. Here's a demo.As an aside, you should reconsider your HTML.
id
should ideally be unique values. From the HTML4 specs:And from the HTML5 specs:
You can, for example, use classes to differentiate the different inputs. It would be just as easy to target them. e.g. http://jsfiddle.net/HxtfP/1/.
Alternatively, simply leave out
id
and use thename
attribute for targetting: http://jsfiddle.net/HxtfP/2/尝试一下,但这不是很好的代码风格。
Try this, but it`s not very goods code style.
为了让您的生活变得轻松,我建议您只需向这些字段添加 billNo 类,并在可能的情况下使用该类作为选择器。
否则:
To make your life easy I suggest you just add a billNo class to those fields and use the class as selector IF possible.
Otherwise:
尝试:
Try: