我想我们都很困惑。但是快速分解您的选择。
在对问题进行更新后,您可能寻求的答案似乎是我的最后一个示例。请同时考虑所有其他信息,因为它可能会帮助您确定更好的“最终目标”流程。
首先,您有另一个答案中指出的 DOM Load 事件。这将在页面完成加载时触发,并且应该始终是您在 HEAD JavaScript 中的第一个调用。要了解更多信息,请参阅此 API 文档。
例子
$(document).ready(function () {
alert($('select').val());
})
/* |OR| */
$(function() {
alert($('select').val());
})
然后你有可以附加到选择元素的事件,例如“change”、“keyup”、“keydown”等......通常的事件绑定是“change”和“keyup”,因为这两个是最常见的结束用户期望“改变”的事件。要了解更多信息,请阅读 jQuery 的.delegate()(仅限 1.6 及以下版本)、.on()、.change() 和.keyup ( )。
例子
$(document).on('change keyup', 'select', function(e) {
var currentSelectVal = $(this).val();
alert(currentSelectVal);
})
现在delegating
对文档的更改事件不是“必要的”,但是,它确实可以省去以后的麻烦。委托允许未来的元素(未在 DOM 加载事件上加载的东西),满足选择器资格(exp. 'select'、'#elementID' 或 '.element-class')自动将这些事件方法分配给它们。
但是,如果您知道这不会成为问题,那么您可以使用事件名称作为 jQuery 元素对象方法,并使用更短的代码。
例子
$('select').change(function(e) {
var currentSelectVal = $(this).val();
alert(currentSelectVal);
})
最后一点,在某些 Ajax 调用期间还会发生“成功”和“完成”事件。所有 jQuery Ajax 方法都以一种或另一种方式具有这两个事件。这些事件允许您在 Ajax 调用完成后执行操作。
例如,如果您想在进行 Ajax 调用之后获取选择框的值。
例子
$.ajax({
url: 'http://www.mysite.com/ajax.php',
succuess: function(data) {
alert($("select#MyID").val());
}
})
/* |OR| */
$.post("example.php", function() { alert("success"); })
.done(function() { alert($("select#MyID").val()); })
/* |OR| */
$("#element").load("example.php", function(response, status, xhr) {
alert($("select#MyID").val());
});
更多阅读:
还有一点要记住,所有 jQuery Ajax 方法(如 .get、.post)只是$.ajax({ /* options|callbacks */ })
!