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で設定し、そのIDをJqueryでターゲットにすることができます。

あなたの関数について(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 に答える