2011-09-17 80 views
0

我有一个列表视图,输出为表格。每个<td>里面我有一个<div>其中包含一个<hidden>元素。jquery prev追加到许多元素

当单击该元素的同胞时,我使用jquery.prev()读取hidden元素的隐藏值。

它做的第一个元素很好,但是当我点击另一个元素时,它附加了第一个元素,我点击orginally。现在我正在测试,所以我有一个alert调用变量进行测试,我得到两个警报,hidden元素的值是我点击的第一个元素,现在是第二个。这个变种继续构建。我如何才能获得那个价值?

这里是我的标记:

  <div id="HypeShareAlbum" style="padding: 0;margin:0"> 
       <input type="hidden" value="<%#Eval("ID") %>"/> 
       <asp:HyperLink runat="server" Text="Share Album"></asp:HyperLink> 
      </div> 

而我相应的客户端代码:

$('#HypeShareAlbum a').click(function() { 
      //Create/clear variiable for albumID 
      var albumvalue = ''; 
      //Set Variable for albumid 
      albumvalue = $(this).prev().val(); 
      //Dialog Settings 
      var dialogsettings = { 
       width: 447, 
       minheight: 100, 
       height: 356, 
       position: ["center"], 
       close: function() { 
        $('#ClonedEmail').html(''); 
       } 
      }; 
      //DIALOG FOR SHARING ALBUM STARTS HERE 
      //Show Share Album Dialog 
      $('#ShareDialog').dialog(dialogsettings); 
      //When Focusing out of main email check if exist 
      $('#addemail input[type=text]').focusout(function() { 
       //Checks main email 
      }); 
      //Click Event for Adding more Emails to dialog 
      $('#AddMoreEmails').click(function() { 
       //Append Email 
       $('#addemail').clone().appendTo($('#ClonedEmail')); 
       //Remove and bind back fousout event 
       $('#ClonedEmail input[type=text]').unbind('focusout'); 
       $('#ClonedEmail input[type=text]').focusout(function() { 
        //Check email and let user no if email is found or not 
       }); 
      }); 
      //Cancel Dialog 
      $('#CancelEmailShare').click(function() { 
       $("#ShareDialog").dialog("close"); 
      }); 
      //Send Email Ajax and Cancel Dialog 
      $('#SendEmailShare').click(function() { 
       alert(albumvalue); 
      }); 
      //DIALOG FOR SHARING ALBUM ENDS HERE 
     }); 
+0

请包括相关的HTML。用描述它的文字很难跟踪。 – jfriend00

+0

我做过,我包括div和jquery。它没有出现吗? – user516883

+0

HTML没有显示,需要别人编辑帮助 - 现在显示。你所显示的只是HypeShareAlbum div。它不会告诉我们你想要用'.prev()'来达到什么目的,这就是你说问题的地方,它不会显示你点击那个问题的第二个元素。请证明。我疯狂的猜测是你有重复的ID,但没有看到其他相关的HTML,这只是一个疯狂的猜测。另外,如果您向我们提供实际从浏览器生成的HTML而不是ASP源,我们更可能提供准确的帮助。 – jfriend00

回答

0

,而不是将此值添加一个警告,我把它添加到用于测试的文本框,它工作得很好。不知道为什么在一次警报中出现了多次,但现在工作正常。