Jquery从隐藏文本字段中获取值

时间:2012-04-30 09:52:24

标签: jquery

我正在尝试使用jquery从隐藏文本字段中获取值,但没有成功。 这是javascript函数,它动态地向页面添加html。

          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值成功地放入隐藏字段中,我使用警告框检查它。

2 个答案:

答案 0 :(得分: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);
});

这会在与.logitudeVal相同的.latitudeVal元素中找到.Branches.DeleteIcon字段。

答案 1 :(得分:0)

为简化您的javascript点击事件,您可以使用唯一ID设置隐藏输入,并使用Jquery将该ID作为目标:

在您的功能上(lng,lat)

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

现在为'.DeleteIcon'点击活动:

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

备注: 我已使用.live()设置此点击事件,以允许它可用于动态创建的元素。