这是我正在构建https://codepen.io/alexyap/pen/GmrgVL?editors=0010
的笔我正在尝试从下拉列表中单击的每个选项返回值,以便我可以在最后一个框中添加所有这些值,但我不知道如何在click函数之外访问它们,如果可能的话。有人有什么建议吗?
var val1 = $("#box1 p:first-child").text()
$("#dropdown1 ul li").click(function(){
$("#box1 p:first-child").text($(this).text());
$("#box1 p:first-child").val($(this).text());
val1 = $("#box1 p:first-child").text();
})
答案 0 :(得分:0)
您在帖子中包含的代码应该有效。每次点击dropdown1,都应该更改val1。但是,在您链接的笔中,您有:
$("#dropdown1 ul li").click(function(){
$("#box1 p:first-child").text($(this).text());
$("#box1 p:first-child").val($(this).text());
var val1 = $("#box1 p:first-child").text();
//...
}
var
之前的val1
会产生重大影响。如果没有var
,该行将在全局命名空间中设置val1的值。但是对于var
,该行在 function 命名空间中创建一个新变量;单击处理函数退出后,本地val1在未使用的情况下被销毁,然后在下一次单击时重新创建。但是如果没有var
,您将始终在全局命名空间中更新val1
,这就是您想要的。这是否能满足您的需求?
答案 1 :(得分:0)
你的意思是这样的吗?:
var val1;
$("#dropdown1 ul li").click(function(){
$("#box1 p:first-child").text($(this).text());
$("#box1 p:first-child").val($(this).text());
val1 = $("#box1 p:first-child").text();
});
因此,每当您单击所需的元素时,它将存储在GLOBAL
(这是重要的)变量中,因此您可以在任何地方使用它的值。在你的笔中,我注意到你有一些分号问题。