2012-04-30 110 views
1

我想用jquery從隱藏文本字段獲取價值,但沒有成功。 這是將html添加到頁面的JavaScript函數。jquery從隱藏文本字段獲取價值

  function(lng,lat) 
      { 
      document.getElementsByClassName("BranchDetails").item(0).innerHTML+="" 
      +" <div class='Branches'>" 
      +"  <div class='DeleteIcon'><img src='../Images/deleteicon.png' width='15' height='15'></div>" 

      +"  <div class='BranchName'>" 
      +"  <div class='CompanyBranchNameText'>" 
      +"   Company Name" 
      +"  </div>" 


      +"  <div class='EditCompanyBranchName'>" 
      +"   <label>Company Name:</label><input type='text' class='EditNameText' >" 
      +"   <input type='hidden' class='longitudeVal' value='"+lng+"' /><input type='hidden' class='latitudeVal' value='"+lat+"' />" 
      +"  </div>" 
      +"  <a href='javascript:void(0)' class='EditNameLink'><p>edit...</p></a>" 
      +" </div>" 
      +" </div>"; 
      } 

現在我想獲取隱藏文本字段的值。 到目前爲止我所做的是。

  $('.Branches').children('.DeleteIcon').click(

     function() 
     { 
       alert($(this).siblings('.EditCompanyBranchName').children('.longitudeVal').val()); 
     } 
      ); 

但是,這返回給我一個未定義的值。 lng和lat值正在隱藏字段中,我已經使用警報框對其進行了檢查。

回答

4

問題是因爲.EditCompanyBranchName不是.DeleteIcon的兄弟姐妹 - 這是一個孩子。試試這個:

$('.Branches').children('.DeleteIcon').click(function() { 
    var long = $(this).parent().find('.longitudeVal').val(); 
    var lat = $(this).parent().find('.latitudeVal').val(); 
    alert(long); 
    alert(lat); 
}); 

這將在同一.Branches元素作爲.DeleteIcon它被點擊之內找到.logitudeVal.latitudeVal領域。

+0

但你可以看到.DeleteIcon在同一個地方關閉,並且.EditCompanyBranchName不在.DeleteIcon – Mj1992

+0

的標籤內部,你不需要'each()'on .longitudeVal來獲取lat,lng值嗎? –

+0

@RyanFernandes否,因爲'find()'只會查找父'.Branch'中的元素。 –

0

要簡化你的JavaScript單擊事件,您可以設置隱藏的輸入具有唯一的ID和目標與jQuery是ID:

你的函數(LNG,LAT)

... 
<input type='hidden' id="Jquery_latitude" class='latitudeVal' value='"+lat+"' /> 
... 

現在的 '.DeleteIcon' click事件:

$('.Branches').children('.DeleteIcon').live("click", function() { 
    var lat = $('#Jquery_latitude').val(); 
    alert(lat); 
}); 

注意: 我已將此單擊事件與.live()設置爲允許它可用於動態創建的元素。

+0

從OP描述中,頂部的代碼塊被附加了x次,使用'id'作爲該字段將導致重複ID,導致您的代碼無法正常工作。 –

+0

我不能直接引用隱藏字段使用ID,因爲有多個字段正在生成相同的類,所以我想執行該類的單擊事件的操作,只有這就是爲什麼$(this)是我的情況必須條件 – Mj1992

+0

對不起關於這個,Rory McCrossan的回答是因爲它的方法確實解決了這個問題。 – Zuul