2009-08-25 96 views
0

我使用的原型,並且有一定的div id爲P1,P2,P3 ... 在這些div我有一些div id爲D1 D2 D3 ......

我想用$來在指定的p元素中獲取指定的d元素。

如果給出值3和4,我應該可以去$('p3')。$('d4') 當然,這種語法不起作用。

這裏有一個簡單的方法來做到這一點與jQuery所以我假設它存在於原型

回答

2

不幸的是,原型的$功能並不鏈,因爲它返回一個擴展HTMLElement對象和$是一個窗口方法。但是,您可以使用$$ function用CSS選擇器一起實現這一點:

$$('#p3 #d4').first(); // Element with id 'd4' that's a descendant of an element with id 'p3' 

雖然$$函數返回一個擴展HTMLElement對象就像$,它實際上返回他們的陣列,作爲一個CSS選擇器可能潛在匹配多個元素。

你可以閱讀關於CSS選擇器here

+0

+1。雖然還是應該提到,通常只需要執行$('d4'),這相當於您的示例。 – Triptych 2009-08-25 20:24:12

+0

同意。我的方法只是強調問題的p3-> d4關係,但正如其他答案指出的那樣,ID應該是單數的,在這種情況下$('d4')就足夠了。 – 2009-08-25 21:18:54

1

考慮的ID(「標識符」)是(應該是)唯一的,爲什麼不直接使用你最特殊標識有 - 第二個:

$('d4') 

如果標識符不是唯一的,他們不識別......他們不應該被用來作爲你的div的「id」屬性...


其實,如果喲u有這樣的事情:

p1 
    d1 
    d2 
p2 
    d1 
    d2 
    d3 
p3 
    d1 

你的 「PX」 即可ID(它們是唯一的),但你的 「DX」 不應該是IDS;一個解決方案可能是使用該類來存儲「dX」信息。

像這樣的一點,我想:

id=p1 
    class=d1 
    class=d2 
id=p2 
    class=d1 
    class=d2 
    class=d3 
id=p3 
    class=d1 

然後,你將使用$$功能與CSS選擇器:如果你想與一類=「D2」的elemnt裏面的元素id =「p1」,像這樣的東西可能會工作:

$$('#p1 .d2');

即:

  • P1 =使用id = P1

  • 具有d2的含類


希望這是清楚的,並有助於.D2 =元件元件.. 。

1

這應該工作:

$('p3').select('#d4').first() 

話又說回來,如果所有的ID是唯一的,因爲他們應該的,爲什麼不這樣做:

$('d4'); 
0
$('p3').select(new Selector('#d4'));