2011-04-25 59 views
1

我已經在點擊鏈接時動態設置了隱藏的輸入元素的值。在jquery中檢索設置爲輸入元素的動態值的問題

<input id="flag" type="text" class="hidden" /> 

$("#changed_link").click(function(){ 
      $('#flag').val(1); 
}); 

此鏈接打開一個燈箱窗口。在燈箱中,我的一個div,隱藏了#section1。最初,當我打開燈箱,(通過點擊另一個鏈接),這個div是隱藏的。第二次,當我點擊第二個鏈接,即changed_link時,我想要顯示此#section1

所以我試圖設置一個標誌值,同時點擊鏈接,並將其傳遞給相應的js文件。但是當我嘗試檢索該隱藏輸入的值時,它在js文件中是未定義的。

var flag=$('#flag').val(); 
alert(flag); //undefined 

但如果標誌值設置最初,

<input id="flag" type="text" class="hidden" value='1' /> 

然後我得到的js文件中該值。但總是顯示div section1

如何在我的js文件中獲得動態設置值?

+0

你是什麼意思通過傳遞給另一個js文件 – jimy 2011-04-25 13:20:48

回答

1

@Jade:嘗試 -

var flag = $('#flag', top.document).val(); 
alert(flag); 

更新

上述假設你正在檢查的隱藏輸入的值從您的燈箱。然而,如果你在父窗口,檢查,然後用0初始化你的隱藏輸入:

<input type="hidden" id="flag" value="0" /> 

<a href="#" id="changed_link1">Link 1</a> | 
<a href="#" id="changed_link2">Link 2</a> 

,並設置/查看隱藏輸入的相應值:

$("#changed_link1").click(function(e) { 
    e.preventDefault(); 
    $('#flag').val(1); 
}); 

$("#changed_link2").click(function(e) { 
    e.preventDefault(); 
    var flag = $('#flag').val(); 
    alert(flag); // 0 if first link wasn't used, 1 if it was 
}); 
+2

非常感謝,現在我獲得了我之前設定的價值.. – Jade 2011-04-26 04:51:57

0

你試過:

$(function(){ 
    var flag = $('#flag').val(); 
    alert(flag); 
}); 
+0

不,它不工作.. – Jade 2011-04-25 13:30:51

+0

JS文件在同一個頁面,並按正確的順序? – mattsven 2011-04-25 13:32:22

0

有時候我也有同樣的問題,我改變我的代碼:$('#flag').attr('value');

否則,如果你的目標是交替顯示/隱藏DOM節點,您可以使用:$(...).toggle()

希望得到這個幫助。