我使用的原型,并且有一定的div id为P1,P2,P3 ... 在这些div我有一些div id为D1 D2 D3 ......
我想用$来在指定的p元素中获取指定的d元素。
如果给出值3和4,我应该可以去$('p3')。$('d4') 当然,这种语法不起作用。
这里有一个简单的方法来做到这一点与jQuery所以我假设它存在于原型
我使用的原型,并且有一定的div id为P1,P2,P3 ... 在这些div我有一些div id为D1 D2 D3 ......
我想用$来在指定的p元素中获取指定的d元素。
如果给出值3和4,我应该可以去$('p3')。$('d4') 当然,这种语法不起作用。
这里有一个简单的方法来做到这一点与jQuery所以我假设它存在于原型
不幸的是,原型的$
功能并不链,因为它返回一个扩展HTMLElement
对象和$
是一个窗口方法。但是,您可以使用$$
function用CSS选择器一起实现这一点:
$$('#p3 #d4').first(); // Element with id 'd4' that's a descendant of an element with id 'p3'
虽然$$
函数返回一个扩展HTMLElement
对象就像$
,它实际上返回他们的阵列,作为一个CSS选择器可能潜在匹配多个元素。
你可以阅读关于CSS选择器here。
考虑的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');
即:
希望这是清楚的,并有助于.D2 =元件元件.. 。
这应该工作:
$('p3').select('#d4').first()
话又说回来,如果所有的ID是唯一的,因为他们应该的,为什么不这样做:
$('d4');
$('p3').select(new Selector('#d4'));
+1。虽然还是应该提到,通常只需要执行$('d4'),这相当于您的示例。 – Triptych 2009-08-25 20:24:12
同意。我的方法只是强调问题的p3-> d4关系,但正如其他答案指出的那样,ID应该是单数的,在这种情况下$('d4')就足够了。 – 2009-08-25 21:18:54