2017-08-08 46 views
-1

編輯:這個問題不是重複的,我知道在這一點上,foo還沒有被插入到DOM中。我的問題是,是否可以訪問在分配給foo的字符串中聲明的元素,而不將插入到文檔對象中。使用Javascript創建的HTML元素的訪問值

在下面的代碼中,我們將HTML元素聲明爲JavaScript變量。

<script> 
var foo = "<td id = 'bar'>"; 
</script> 

現在,<script>標籤之後,但在</script>標記之前,我如何訪問表單元格的id價值?

例如,打電話console.log(foo.id)明顯打印undefined。 我怎麼能調用console.log()函數(或任何其他函數來訪問id的值)給我們正確的值,"bar"

我使用<td>作爲示例,但我認爲這適用於任何用JS聲明的html標籤。

+0

它不是一個DOM元素,直到你真的把它放在DOM中。你寫它的方式只是一個字符串。 – Chase

+0

@Chase我在我寫的代碼中實際犯了一個錯誤。更新與解釋。我知道這不是一個DOM元素,我只是想知道是否有方法從JS變量本身訪問'id'元素。 – Fitzy

+0

由於它不是一個DOM元素,它只是一個字符串,所以你唯一能做的就是使用字符串函數解析字符串。 – raphael75

回答

0

在你的情況,你會得到第一和第二',巧合的情況做是ID之間有什麼:

foo.split("'")[1] // -> bar 

然而,是不是太有用的或可重複使用。您可以將元素推送到內存,並將該節點的innerHTML設置爲您的字符串,但是您的示例中的字符串不是有效的HTML,因此它不起作用。

var temp = document.createElement('html') 
temp.innerHTML = str 
temp.getElementsByTagName('td')[0].id // -> bar 

雖然不能想象你的用例,所以也許沒有一個是完美的。

+0

這或多或少是我想的。謝謝! – Fitzy