2017-02-10 85 views
-1

我在HTML页面ID选择部分“选择”和我创建一个jQuery代码,例如:如何在事件处理程序之外使用变量?

$(document).ready(function() { 
    $(document).on("change", function() { 
     var text = $("#select").val(); 
    }); 
    allert(text); 
}); 

但是这个代码不工作。我怎样才能调用“文本”功能?

编辑(HTML代码):

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="jquery.min.js"></script> 
     <script type="text/javascript" src="myjquerycode.js"></script> 
     <title>Untitled Document</title> 
    </head> 
    <body> 
     <select id="select"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
     </select> 
    </body> 
</html> 
+1

您可以通过在change事件处理程序之外定义'text'来实现这一点,尽管在您处于提醒状态时提醒它是多余的,因为该值始终未定义。 –

+1

你的代码没有任何意义。 on('change',...)设置了一个事件处理程序,它在发生更改事件之前不会执行。您设置事件处理程序后的警报将立即执行,因此事件未发生。 你想完成什么? – MikeS

+0

当选择值更改我的代码警报选择值。 – RobinSon

回答

1

也许编号是错误的。检查你的ID。

而且检出https://api.jquery.com/change/

例如:

$(document).ready(function() { 
 
    $("input").change(function() { 
 
    var text = $("#select").val(); 
 
    alert(text); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="select">

EDIT

$("select").change(function() { 
 
    var str = ""; 
 
    $("select option:selected").each(function() { 
 
    str += $(this).text() + " "; 
 
    }); 
 
    $("div").text(str); 
 
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select name="sweets" multiple="multiple"> 
 
    <option>Chocolate</option> 
 
    <option selected="selected">Candy</option> 
 
    <option>Taffy</option> 
 
    <option selected="selected">Caramel</option> 
 
    <option>Fudge</option> 
 
    <option>Cookie</option> 
 
</select> 
 
<div></div>

0

只是做一个函数并调用它,当你需要它。

$(document).ready(function() { 

    function getSelect() { 
    return $("#select").val(); 
    } 

    $("#select").change(function() { 
    alert(getSelect()); // This will alert you anytime you change it 
    }); 

    var selectValue = getSelect(); // You can get its value outside wherever else you need it 

}); 
+1

您更正了语法问题,但它不是“我如何在功能外使用var?”的答案。 – Alexis

+0

检查我对答案的编辑 – eeetee

+0

此代码不起作用 – RobinSon

0

当你想使用的值

这里是如何提醒选择的值时,选择的变化

$(function() { 
    $("#select").on("change", function() { 
     var text = $(this).val(); 
     alert(text); 
    }); 
}); 

其他地方,选择的存在后,目前尚不清楚DOM:

alert($("#select").val()); 

$("#select").change(); // trigger the already existing handler 
相关问题