2009-08-25 60 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'));