2017-02-10 89 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 
相關問題