2

我最近一直在摆弄 HTML,我有一个问题。

有没有办法将元素的 id 作为另一个元素的子元素?这很难描述,但这里有一个例子。

<body>
  <div id="a">
    <div id="inner"></div>
  </div>
  <div id="b">
    <div id="inner"></div>
  </div> 
</body>

我不知道这是否合法(因为“内部”被声明了两次),但问题如下:

假设我有一个充满方形 div 的网页,它们具有自己的样式和固定位置(有点像 Windows 8 Metro),我希望能够将特定方形的所有组件分组到该方形中,以便我可以使用 javascript 来聚焦在伪代码范围内的元素上。

ClickMeButtonDiv.ClickMeButton.value = parseInt(ClickMeButton.value) + 1;

简而言之,我想知道是否可以将 div 的所有子项分组到该 div,因为如果我在一页上有 100 个正方形做自己的事情,那么将所有元素按 id 绑定到全局范围是一件令人头疼的事情...

有没有办法做到这一点?

提前谢谢!

4

2 回答 2

4

你不能有非唯一的 ID。您可以使用该class属性。更改id="inner"class="inner",如果您使用的是 JQuery,则可以尝试使用子选择器。例如:

$("#a > .inner");

没有 jQuery

document.getElementById('a').getElementsByClassName('inner')[0];
于 2013-04-26T09:30:39.273 回答
2

id必须是唯一的。您描述的分组问题最好使用类来解决。

  <div id="a">
    <div class="inner"></div>
  </div>
  <div id="b">
    <div class="inner"></div>
  </div> 

如果您想从元素中读取值,inner我强烈建议您使用jQuery,因为它允许您按类选择元素。

<div id="a">
  <input type="text" class="inner" value="1" />
</div>
<div id="b">      
  <input type="text" class="inner" value="2" />
</div> 

JS:

$('#a input.inner').val(); // == 1
$('#b input.inner').val(); // == 2
于 2013-04-26T09:35:49.127 回答