Dom 原型递归$

Dom 原型递归$,dom,recursion,prototypejs,Dom,Recursion,Prototypejs,我正在使用prototype,有一些id为p1 p2 p3的div。。。 在这些分区中,我有一些id为d1 d2 d3的分区 我想使用$在指定的p元素中获取指定的d元素 如果给我3和4的值,我应该可以去$('p3')。$('d4')) 当然,这种语法不起作用 使用jQuery有一种简单的方法可以做到这一点,所以我假设prototype中也存在这种情况,考虑到id(“标识符”)是唯一的,为什么不使用您拥有的最具体的标识符呢?第二个标识符: $('d4') 如果标识符不唯一,则它们不是标识符。。。

我正在使用prototype,有一些id为p1 p2 p3的div。。。 在这些分区中,我有一些id为d1 d2 d3的分区

我想使用$在指定的p元素中获取指定的d元素

如果给我3和4的值,我应该可以去$('p3')。$('d4')) 当然,这种语法不起作用

使用jQuery有一种简单的方法可以做到这一点,所以我假设prototype中也存在这种情况,考虑到id(“标识符”)是唯一的,为什么不使用您拥有的最具体的标识符呢?第二个标识符:

$('d4')
如果标识符不唯一,则它们不是标识符。。。而且它们不应该用作div的“id”属性


实际上,如果你有这样的东西:

p1
  d1
  d2
p2
  d1
  d2
  d3
p3
  d1
你的“pX”可以是id(它们是唯一的),但你的“dX”不应该是id;解决方案可能是使用类来存储“dX”信息

我想有点像这样:

id=p1
  class=d1
  class=d2
id=p2
  class=d1
  class=d2
  class=d3
id=p3
  class=d1
然后,您将使用带有CSS选择器的函数:如果您希望在id=“p1”的元素中包含class=“d2”的元素,类似这样的操作可能会起作用:

$$('p1.d2')

即:

  • p1=id为p1的元素
  • .d2=具有包含d2的类的元素

希望这是清楚的,并且有助于……

考虑到id(“标识符”)是(应该)唯一的,为什么不使用您拥有的最具体的标识符呢?第二个:

$('d4')
如果标识符不唯一,则它们不是标识符。。。而且它们不应该用作div的“id”属性


实际上,如果你有这样的东西:

p1
  d1
  d2
p2
  d1
  d2
  d3
p3
  d1
你的“pX”可以是id(它们是唯一的),但你的“dX”不应该是id;解决方案可能是使用类来存储“dX”信息

我想有点像这样:

id=p1
  class=d1
  class=d2
id=p2
  class=d1
  class=d2
  class=d3
id=p3
  class=d1
然后,您将使用带有CSS选择器的函数:如果您希望在id=“p1”的元素中包含class=“d2”的元素,类似这样的操作可能会起作用:

$$('p1.d2')

即:

  • p1=id为p1的元素
  • .d2=具有包含d2的类的元素

希望这是清楚的,并有助于…

这应该是有效的:

$('p3').select('#d4').first()
同样,如果您的所有ID都是唯一的(应该是唯一的),为什么不这样做:

$('d4');
这应该奏效:

$('p3').select('#d4').first()
同样,如果您的所有ID都是唯一的(应该是唯一的),为什么不这样做:

$('d4');

不幸的是,prototype的
$
函数没有链接,因为它返回一个扩展的
HTMLElement
对象,
$
是一个窗口方法。但是,您可以将与CSS选择器一起使用来实现这一点:

$$('#p3 #d4').first(); // Element with id 'd4' that's a descendant of an element with id 'p3'
虽然
$
函数返回一个扩展的
HTMLElement
对象,就像
$
一样,但它实际上返回一个数组,因为CSS选择器可能会匹配多个元素


您可以阅读CSS选择器。

不幸的是,prototype的
$
函数没有链接,因为它返回一个扩展的
HTMLElement
对象,
$
是一个窗口方法。但是,您可以将与CSS选择器一起使用来实现这一点:

$$('#p3 #d4').first(); // Element with id 'd4' that's a descendant of an element with id 'p3'
虽然
$
函数返回一个扩展的
HTMLElement
对象,就像
$
一样,但它实际上返回一个数组,因为CSS选择器可能会匹配多个元素


您可以阅读有关CSS选择器的信息。

+1。尽管仍然应该提到,通常只做$('d4')更好,这与您的示例相当。同意。我在这里的方法只是从问题中强制执行p3->d4关系,但正如其他答案所指出的,ID应该是单数的,在这种情况下,$('d4')就足够了。+1。尽管仍然应该提到,通常只做$('d4')更好,这与您的示例相当。同意。我在这里的方法只是从问题中强制执行p3->d4关系,但正如其他答案所指出的,ID应该是单数的,在这种情况下,$('d4')就足够了。