我目前正在使用以下内容获取表单中存在的所有Select元素:
$("form").submit(function(event)
{
// gather data
var data = GetSelectData($("form select"));
// do submit
$.post($(this).attr("action"), data, ..etc)
});
有没有一种方式可以说像
,而不是传入$("form select")
$(this).children('select') // this doesn't work, btw
获取submit事件正在执行的表单上下文中存在的所有select元素?
这将允许我将代码缩减为以下内容,将所有功能转移到一个通用功能中:
$("form").submit(function(event)
{
GatherDataAndSubmit($(this));
});
function GatherDataAndSubmit(obj)
{
var data = GetSelectData(obj.children('select'));
$.post(obj.attr("action"), data, ..etc)
}
由于
戴夫
答案 0 :(得分:5)
使用.find()
尝试
var data = GetSelectData(obj.find('select'));
.find()和.children()方法 是相似的,除了后者 只走一层 DOM树。
$("form").submit(function(event)
{
GatherDataAndSubmit($(this));
});
function GatherDataAndSubmit(obj)
{
var data = GetSelectData(obj.find('select'));
$.post(obj.attr("action"), data, ..etc)
}
答案 1 :(得分:1)
$("form").submit(function(event) {
// gather data
var data = GetSelectData($("select", this));
// ...
});
在可能的情况下始终指定第二个参数,它指定选择器实际搜索的上下文/范围。