2013-12-21 70 views
-1

我有一個這樣的選擇器,它選擇文本類型的輸入元素。如何限制jquery選擇器僅限具有特定ID的元素的子元素?

$('input[type=text]') 

如何限制它只選擇包含在具有特定ID的元素中的文本類型的輸入元素?例如,我該如何選擇屬於A的子項的文本類型的輸入字段?

<article id="A"> 
    <p>Concrete</p> 
    <div class="form"> 
     <fieldset> 
      <input placeholder="Quantity" type= 
      "text"> </input> <!-- select these --> 
</article> 
<article id="B"> 
    <p>Concrete</p> 
    <div class="form"> 
     <fieldset> 
      <input placeholder="Quantity" type= 
      "text"> </input> <!-- not these --> 

回答

0

使用此

$('#A input[type=text]') 
+0

這工作,但不建議這樣做。它比David的解決方案慢,因爲它無法利用瀏覽器的快速ID查找。 – mpen

+0

@Mark - 做這個而不是'find'或'children'真的慢嗎? – Krishna

+0

@Mark:這不一定是真的;雖然它可能不是*快速,但jQuery可以實現/調用瀏覽器的本地['document.querySelectorAll()'](https://developer.mozilla.org/en-US/docs/Web/API/ document.querySelectorAll)(如果有的話),這隻會*稍微慢一點,* *會*阻止需要第二次查找。 –

1

要查找*所有內#Ainput[type="text"]元素:

$('#A').find('input[type=text]'); 

或者:

$('#A input[type=text]'); 

或者,只找到直接子的#Ainput[type="text"]

$('#A').children('input[type=text]'); 

參考文獻:

1

您可以使用此語法另一個選擇搜索的元素中給定ID:

$('#<id>').find('<your-selector>') 

所以,你的具體情況,你可以使用:

$('#A').find('input[type=text]') 
相關問題