2016-03-03 43 views
-1

我在我的網站上使用不同的ID有幾個div。像這樣;如何將JavaScript變量作爲/轉換爲ID?

<div id = 'write1' style="color:#0000FF"> 
<div id = 'write2' style="color:#0000FF"> 
<div id = 'write3' style="color:#0000FF"> 
<div id = 'write5' style="color:#0000FF"> 
.... 
.... 
.... 
<div id = 'write*' style="color:#0000FF"> 

然後我在我的網站上有幾個按鈕是這樣的;

<button id = 'write1click' type="button">Click Me!</button> 
    <button id = 'write2click' type="button">Click Me!</button> 
    <button id = 'write3click' type="button">Click Me!</button> 
    <button id = 'write4click' type="button">Click Me!</button> 
    .... 
    .... 
    .... 
<button id = 'write*click' type="button">Click Me!</button> 

在我的JavaScript中,我所做的是獲得對div標籤和按鈕的引用,如此;

var write1 = document.getElementById("div1"); 
.... 
.... 
.... 
var write1click = document.getElementById("write1click"); 

然後我在做的是額外的所有數字從我的按鈕id這樣;

var getnumber = write1click.id.replace(/\D/g, ''); // This returns 1 

然後我正在創造另一個值;

var finalVariable = 'write' + getnumber; // This returns write1 

現在什麼變量finalVariable包含最初是第一個div標籤「WRITE1」一個ID。然而,該網站現在不會。

我想要做的是檢查是否有一個這個名字的變量,如果有我想用它做特定的任務。

因此,例如在僞代碼中,它可能看起來像這樣;

IF finalVariable Is or Matches a id of element in the website THEN 
Do something 

我不確定這是否可能,如果有的話,歡迎任何幫助。如果我的問題不清楚,請讓我知道,我會嘗試更好地解釋它。

另外,請注意,如果這可以實現,那麼不需要像這樣引用div ID var write1 = document.getElementById("div1");然而,由於我對網站相當陌生,我很樂意提出建議,但我想現在該怎麼做。

謝謝。

+0

這聽起來像是一個XY問題。你可以通過使用公共類來改進HTML和JS代碼的邏輯,然後通過索引將'div'與單擊的'button'關聯起來。雖然你的'finalVariable'的目的不是很明顯嗎? –

+0

目前我鏈接他們就像你所建議的,但是,我想知道,例如說,有一個變量,其中包含一個值是相同的一個元素的ID是可以使用該變量使用與變量匹配的ID執行一些任務。 – Henry

+0

在這種情況下,變量'finalVariable'的值是'write1'。這個值是其中一個div標籤的id名稱,我想要做的就是使用這個變量來確定頁面上是否有包含此id的元素,如果是,我想執行一些任務。 – Henry

回答

2

是的,JS代碼將是完全的僞代碼:

if (document.getElementById(finalVariable)) { 
    // do something, ex: document.getElementById(finalVariable).style.color = 'blue'; 
} 

或者jQuery中:

if ($('#' + finalVariable).length) { 
    // do something 
} 
1

你試過從窗口對象訪問變量

if(!typeof window[finalVariable] === undefined){ 
    //your variable exists 
    if(window[finalVariable] != null){ 
     //do something 
    } 
}