使用jquery获取facebox div中元素的值

时间:2009-11-07 10:15:43

标签: javascript jquery css

我有两个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>

谢谢

3 个答案:

答案 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();