【问题标题】:How can I assign values to variables from different spans with the same ID如何为具有相同 ID 的不同跨度的变量赋值
【发布时间】:2011-04-15 09:56:59
【问题描述】:

我有许多具有相同 ID 的跨度。如何按照出现的顺序将它们的值分配给不同的变量。

<span id="hello"> 18</span>
<span id="hello"> 12</span>
<span id="hello"> 21</span>

我想要 var1 = 18 var2= 12 var3= 21

【问题讨论】:

  • ID 必须是唯一的。改用类。重复的 ID 只会带来麻烦。而且 imo 最好创建一个值数组而不是“动态变量”。
  • @Felix:仅当该属性是 ID 类型时才为真,如果不查看 DTD 或 Schema,我们无法正式知道。可能是这样,因为它看起来很像 HTML……

标签: javascript


【解决方案1】:

请参阅我关于 ID 的评论。现在假设你给这些元素一个 hello 类,这将适用于所有浏览器:

var values = [],
    spans = document.getElementsByTagName('span');

for(var i = 0, l = spans.length; i < l; i++) {
    var span = spans[i];
    if(span.className === 'hello') {
        values.push(span.innerHTML);
    }
}

DEMO

如果您无法更改 HTML,在这种情况下您可以比较 ID:

if(span.id === 'hello')

这没关系,因为我们正在迭代所有跨度。但是像getElementById 这样的方法不起作用!

【讨论】:

  • 谢谢。我不能给他们上课,因为这个网页是由我正在使用的 premitive 软件生成的。我只是想“破解”它。是否有另一种方法可以在不使用类名的情况下定位跨度?
  • @user521180:那么在这种情况下,您实际上可以使用 ID。查看我的更新。
【解决方案2】:

id 标签在文档中应该是唯一的。如果你想给他们同样的风格,那么你应该使用 class 属性而不是 id 属性。您可以使用 jQuery class selector 获取具有给定类的所有元素(假设您更改为使用类而不是 id)。

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多