1

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

          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

2 回答 2

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);
});

这将在与单击的元素相同的元素中找到.logitudeValand.latitudeVal字段。.Branches.DeleteIcon

于 2012-04-30T09:59:00.613 回答
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() 设置了这个点击事件,以允许它可用于动态创建的元素。

于 2012-04-30T10:00:04.047 回答