我有一個JavaScript函數接收一個DOM元素作爲參數。在這個函數中,我試圖找到最接近祖先的「形式」。我想用:使用jQuery選擇器與DOM元素
function submit_form(obj)
{
var form1 = $(obj).closest("form");
alert (form1.id);
}
這裏obj是提交類型的dom元素。我似乎沒有得到它的工作。
有人能幫忙嗎?
我有一個JavaScript函數接收一個DOM元素作爲參數。在這個函數中,我試圖找到最接近祖先的「形式」。我想用:使用jQuery選擇器與DOM元素
function submit_form(obj)
{
var form1 = $(obj).closest("form");
alert (form1.id);
}
這裏obj是提交類型的dom元素。我似乎沒有得到它的工作。
有人能幫忙嗎?
你想
function submit_form(obj)
{
var form1 = $(obj).closest("form")[0];
alert (form1.id);
}
的jQuery選擇器/遍歷功能結果總是是一個數組,可能只有一個元素,但仍然是一個數組。索引到數組中以獲取實際的DOM元素。
但是,只要obj
是input/select/textarea元素,就可以在不使用jQuery的情況下執行此操作。
function submit_form(obj)
{
var form1 = obj.form;
alert (form1.id);
}
爲了完整起見,你也可以呆在內jQuery和做
function submit_form(obj)
{
var $form1 = $(obj).closest("form");
alert ($form1.attr("id"));
}
function closest(obj, tagName) {
// Go up in the tree until you find the ancestor form
while (obj.parent !== null) {
if (obj.nodeType === 1) {
parent = obj.parentNode;
if (parent.tagName === tagName) {
return parent;
}
}
}
// If no form exists return null
if (obj.tagName !== tagName) {
return null;
}
}
使用它以這種方式
var closestForm = closest(obj, 'FORM')
form1
將是一個jQuery對象,因此您可以使用.attr("id")
或使用[0].id
訪問DOM元素本身:
var form1 = $(obj).closest("form");
alert(form1.attr("id"));
var form2 = $(obj).closest("form")[0];
alert(form2.id);
感謝隊友......你的想法確實奏效! –
你是天才!謝謝;)我必須再等3分鐘才能將此答案標記爲正確! –