2016-01-22 33 views
1

我想弄清楚如何可以隱藏另一個特定的元素。例如:如何使用jQuery隱藏特定的子標籤

<form name='demo_form'> 
    First name: <input type="text" name="fname"><br> 
    Last name: <input type="text" name="lname"><br> 
    <select name="cars"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="fiat">Fiat</option> 
    </select> 
    <input id="submit1" type="submit" value="Submit"> 
    </form> 

所以說我想隱藏只是選擇標籤,剩下的。

我知道如果我沒有

$(demo_form.elements).hide(); 

將隱藏整個事情,而只留下一姓的文字,但實際上是沒有用的,以我的。

我試圖

$(demo_form.select).hide(); 
$("demo_form > select").hide(); 

,但我從沒有什麼。

我知道我能做到

$("form > select").hide(); 
$("#submit1").click(function() { 
     event.preventDefault(); 
     $("form > select").show(); 
}) 

(演出是我與玩弄周圍,想着也許我想要顯示額外的信息用戶進行提交後)

唯一的問題與我所知我可以做的是,它會抓住所有形式和所有選擇,我希望能夠抓住一個特定的形式,並抓住它的各自選擇,或任何標籤,我想要的,而不必總是給這些兒童標籤ID。

任何建議將是偉大的!謝謝。

+0

你想隱藏哪個實例? – guradio

+0

是的,這是可能的,但它取決於許多事情。你想隱藏什麼時候?總是有1個選擇?如果有更多的選擇,你想他們全部隱藏? – Cory

+0

在這一點上,我只是想弄清楚如何做到這一點,沒有發生在我身邊的參數。現在讓我們說,我不認爲我需要它,但我不想從html文檔中刪除它,只是暫時隱藏它。我會怎麼做呢? – Umeed

回答

1

這應該爲你工作,如果你想基於關閉name屬性的選擇與機座:

$("form[name='demo_form'] > select").hide(); 

這將只隱藏select元素是具有name一個form的直接子「demo_form」的屬性。

+0

這正是我一直在尋找的謝謝!我不知道我們可以使用[]來獲取元素。 Mikey的解決方案既快速又幹淨,以後會很方便,但這正是我需要的,謝謝Jeff! – Umeed

+0

太棒了!樂意效勞。 :-) – jeffdill2

1

我想你正在尋找的只是:

$('select[name=cars]').hide(); 

就個人而言,我想給我輸入的name和相同價值的id

<select id="cars" name="cars"> ... </select> 

id屬性被用於爲更快地檢索jQuery,所以,而不是上述,它將是:

$('#cars').hide();` 

name屬性用於在您提交表單時發送數據。 (儘管有些方法可以在不使用name屬性的情況下發送數據。)

+0

哇我不知道你可以做到這一點大聲笑這真棒乾淨,快捷。謝謝! – Umeed

+0

oooh有趣。如果我想在提交表單時發送數據,使用「ID」和「NAME」會更簡單嗎?或者您談論的其他方式是否會將兩者結合起來使其更簡單? – Umeed

+1

使用'id'和'name'更簡單。其他方式需要更多的工作。 – Mikey

1

您可以使用jQuery的選擇器context將選擇器限制爲特定元素。例如,爲了隱藏形式之內的所有select元素:

$('select', 'form[name="demo_form"]').hide(); 

傳遞一個元件作爲第二參數$()將限制用於選擇器在元件上的搜索範圍。以上將影響form[name='demo_form']元素中的所有select標記。