我想在JS函数中使用我传递的参数(this)并将其视为jQuery变量。 例如:
<script>
function useMe(obj){
$(obj).val();
...
...
...
}
</script>
<select id="selectid" onChange="useMe(this)">
<option>......</option>
</select>
是否有可能将传递的参数视为jQuery元素?
顺便说一下。我需要这样做,因为select-element不是在加载时创建的。稍后将异步创建select元素。
所以,这不起作用:
$("select").each(function (i){
var select_id = $(this).attr("id");
$(this).change(function(e){
因为它还不存在。
感谢您的帮助。
答案 0 :(得分:2)
如果你的元素没有在加载时创建,而是异步加载,你可以像这样绑定change事件:
$('select').live('change',function(){
// ...
});
这会将定义的函数绑定到每个现有和每个新选择项上的change事件。
更新:您至少需要jQuery 1.4.1
答案 1 :(得分:0)
如果元素在文档加载时不存在,则意味着稍后可能通过AJAX调用添加它。如果是这种情况,只需将change
句柄注册放在success
回调中。
$.ajax({
url: '/somescript',
success: function() {
// some code that injects the select into the DOM
// ...
$("select").each(function(i) {
var select_id = $(this).attr("id");
$(this).change(function(e) {
// ...
});
});
}
});
答案 2 :(得分:0)
如果您确实选择坚持使用onchange
属性(我建议反对),请使用:
<script>
function useMe($obj){
$obj.val();
...
...
...
}
</script>
<select id="selectid" onChange="useMe($(this))">
<option>......</option>
</select>