我有两个div标签,如下页所示。当我引用itemName元素的值时,使用 $('#itemName')。val(); ,我在两个div中都有,我总是得到第一个div中元素的值是“”(空白)。有没有办法使用jquery获取第二个div中的itemName元素的值,即facebox?
info div
<div id="info" style="display: none;">
<center>
<strong>Name</strong>
<input id="itemName" type="text"/>
<br/>
<br/>
<strong>Price </strong>
<input id="itemPrice" type="text"/>
<br/>
<br/>
</center>
</div>
facebox div
<div id="facebox" style="top: 27.3px; left: 478px; display: none;">
<div class="popup">
<table>
<tbody>
<tr>
</tr>
<tr>
<td class="b"/>
<td class="body">
<div class="content" style="display: block;">
<div id="info" style="">
<center>
<strong>Name</strong>
<input id="itemName" type="text"/>
<br/>
<br/>
<strong>Price </strong>
<input id="itemPrice" type="text"/>
<br/>
<br/>
<input type="button" onclick="updateTab();" value="Add"/>
</center>
</div>
</div>
谢谢
答案 0 :(得分:3)
如果你查看facebox.js,你会看到有一个事件在facebox打开时被触发,所以你只需要绑定到那个事件,然后获取值:
$(document).bind('reveal.facebox', function() {
$('#facebox #itemName').val();
})
答案 1 :(得分:1)
元素ID在文档中必须是唯一的。您的文档无效,这是后果之一。
利用validator,这是一种廉价的QA形式,可以很容易地抓住一些低悬的水果。
答案 2 :(得分:1)
页面上的ID必须是唯一的 - 简单的答案是你需要重命名其中一个。
如果你真的无法改变它们,那么你可以使用这样的东西:
$('#facebox input[type=text]:first').val();