【问题标题】:Getting value of an element inside facebox div using jquery使用jquery获取facebox div内元素的值
【发布时间】:2009-11-07 21:52:44
【问题描述】:

我的页面上有两个 div 标签,如下所示。当我引用 itemName 元素的值时,使用 $('#itemName').val(); 我在两个 div 中都有,我总是在第一个 div 中获得元素的值是“”(空白)。有没有办法使用 jquery 获取第二个 div 中 itemName 元素的值,即 facebox ?

信息分区

<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>

谢谢

【问题讨论】:

    标签: javascript jquery css


    【解决方案1】:

    如果你在facebox.js里面看,你会看到有一个在facebox打开时触发的事件,所以你只需要绑定到那个事件,然后获取值:

    $(document).bind('reveal.facebox', function() { 
     $('#facebox #itemName').val();
    })
    

    【讨论】:

    • 谢谢!你只是节省了我几个小时的头撞。
    【解决方案2】:

    元素 id 在文档中必须是唯一的。您的文件无效,这是后果之一。

    使用validator,它是一种廉价的 QA 形式,可以很容易地获得一些低调的果实。

    【讨论】:

    • 验证器不会捕捉到这一点,因为 Facebook 内容是根据您选择的内容动态创建的。使用类而不是 ID 可能会更好。但我认为他真正的问题是在数据被揭露后从 Facebook 中获取数据——这就是我的回答所要解决的问题。
    【解决方案3】:

    ID 在页面上必须是唯一的 - 简单的答案是您需要重命名其中一个。

    如果你真的不能改变它们,那么你可以使用这样的东西:

    $('#facebox input[type=text]:first').val();
    

    【讨论】:

    • 感谢格雷格的回复。问题是第二个 div 是使用 facebox 插件生成的,而第一个 div 是它用来生成的。
    猜你喜欢
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多