我有許多具有相同ID的跨度。如何將它們的值按照它們的出現順序分配給不同的變量。如何將值分配給具有相同ID的不同跨度的變量
例
<span id="hello"> 18</span>
<span id="hello"> 12</span>
<span id="hello"> 21</span>
欲VAR1 = 18 VAR2 = 12 VAR3 = 21
我有許多具有相同ID的跨度。如何將它們的值按照它們的出現順序分配給不同的變量。如何將值分配給具有相同ID的不同跨度的變量
例
<span id="hello"> 18</span>
<span id="hello"> 12</span>
<span id="hello"> 21</span>
欲VAR1 = 18 VAR2 = 12 VAR3 = 21
查看我對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);
}
}
如果你不能改變的HTML,在這種情況下,你可以比較的ID:
if(span.id === 'hello')
這是好的,因爲我們遍歷所有跨度。但是像getElementById
這樣的方法將不起作用!
謝謝你。我不能給他們上課,因爲這個網頁是由我正在使用的一個前體軟件生成的。即時只是試圖'黑客'在它。有沒有另一種方法來定位span而不使用classname? – code511788465541441 2011-04-15 10:12:38
@ user521180:那麼在這種情況下,您實際上可以使用這些ID。查看我的更新。 – 2011-04-15 10:14:33
ID標籤被認爲是一個文檔中是唯一的。如果您試圖給它們相同的樣式,那麼您應該使用class屬性而不是id屬性。您可以使用jQuery class selector來獲取具有給定類的所有元素(假設您更改爲使用類而不是id)。
ID必須是唯一的。改用類。重複的ID只意味着麻煩。而且,比起「動態變量」,創建一個數組數組會更好。 – 2011-04-15 09:58:46
@Felix:僅當該屬性是ID類型時才爲true,如果沒有看到DTD或Schema,我們無法正式知道該類型。它可能是,雖然看起來很像HTML ... – 2011-04-15 10:00:42
@DonalFellows:對。 – 2011-04-15 10:04:41