2011-03-23 24 views
2

如何找到以外的所有輸入元素表單塊,使用jQuery?jQuery找到表單塊外的所有輸入

+1

這是「jQuery的」,而不是「jQuery的」或「JQuery的」或「jQuery的」輸入元素。 – meagar 2011-03-23 14:09:04

+0

在標籤中它是'jquery':)問題仍然存在 – Zelid 2011-03-23 14:10:13

+0

您有可能更新標記以便您需要的輸入位於自己的容器中嗎?要麼那個或他們有一個特定的類?否則,即使有辦法做到這一點(根據人們已經發布的答案),這會比僅僅執行$('input.someclass')更糟糕,性能明智。 – 2011-03-23 14:16:03

回答

5

選擇任何input元素是不是你可以使用form元素的後代,

$('input:not(form input)') 

Live Demo

Reference

內部接受的所有選擇器:not(),例如:not(div a)和 :not(div,a)。

+0

哇!感謝您的解決方案和漂亮的網站建議! – Zelid 2011-03-23 14:17:56

+0

沒問題,是的,jsfiddle.net非常適合快速測試代碼。 – Loktar 2011-03-23 14:19:12

+0

如果表單是'這個'表單,如何做$('input:not(this input)') – 2014-04-14 22:08:42

1

您可以使用過濾器刪除表單元素中的元素。例如:

$('input').filter(function() { 
    return $(this).closest('form').size() === 0; 
}); 
0

這將是一個有點貴,但一個辦法做到這一點會

$("input").filter(function(i,e){ 
return $(this).closest("form selector goes here").length==0; 
}); 

這將返回只有那些不具備「表格選擇」作爲自己的祖先的輸入元素。

1

也許.. 一些組合的非兒童選擇器? $( 「輸入:沒有(#myForm>輸入)」)

1
$('input').not('form input') 

應該得到沒有形式的祖先