2009-09-02 46 views
0

我有一个项目的动态列表,将用于POST信息后端使用AJAX。从动态列表中提取信息以使用jQuery发布?

<a href="...">Item 1</a> 
<a href="...">Item 2</a> 
<a href="...">.....</a> 
<a href="...">Item n</a> 

我已经决定要包括CSS类,并在每个项目上,这样我可以轻松地分配处理程序(使用CSS类)一个隐藏的输入,这样我可以(通过了解该项目的ID隐藏的领域)。

<a href="..." class="recorditem"><input type="hidden" value="1" name="ItemID"/>Item 1</a> 
<a href="..." class="recorditem"><input type="hidden" value="2" name="ItemID"/>Item 2</a> 
... 
<a href="..." class="recorditem"><input type="hidden" value="n" name="ItemID"/>Item n</a> 

然后用jQuery,我会拦截链接上的点击(它会去非JavaScript用户的页面)做POST。所以它看起来是这样的:

$("a.recorditem").click(function(){ 
     //get the item ID 
     var itemID = $(this + " :input[name='ItemID']").val(); <-- PROBLEM 

     //build a form dynamically - omitted for readability 
     var formToAdd = "<input type='text'.... " 
     //etc etc... 
    }); 

除了我不能为我的生活弄清楚如何从链接中提取隐藏输入字段的值。

我在做什么不正确? 更好的是,这是一个很好的方式来做到这一点的动态列表?

回答

2

不知道隐藏的输入是否在锚(W3c)中有效...从未尝试过。

是否follwoing工作

var itemID = $(this).children().eq(0).val(); 
+0

它的工作原理。我也不确定它是否在锚内有效。 (我只是在记事本上写一些粗略的测试)。有没有更好的方法来处理这种情况,如在哪里可以放置我需要的物品的ID? – MunkiPhD 2009-09-02 20:10:20

+0

您可以在锚本身上使用html5数据属性 – redsquare 2009-09-02 20:17:03

+0

请参阅http://ejohn.org/blog/html-5-data-attributes/了解更多信息 – redsquare 2009-09-02 20:17:33