2011-04-25 57 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()

希望得到这个帮助。