2013-04-25 88 views
-1

我不明白爲什麼這個內部的HTML腳本不起作用。我在jsFiddle上發佈了javascript。你可以在這裏看到:http://jsfiddle.net/JyV73/1/Javascript innerHTML with Popup

我有兩個版本的鏈接。在第一個重寫鏈接是在一個彈出窗口內需要關閉,另一個在textarea內打開正確的文本。

第二,頁面上只有一個鏈接,當它被點擊時,應該有希望在wht textarea中打開帶有正確文本的彈出窗口。

唯一的問題是,它不適用於第二個版本,因爲我必須關閉彈出窗口。如果我註釋掉第一個document.getElementById(id).style.display = 'none'那麼這個簡單的鏈接就可以工作,所以我的第一個想法是創建兩個函數。但是,由於這個JavaScript是包含的PHP模板文件的一部分,我認爲這將是簡單的PHP代碼來解決這個使用純JavaScript。

我仍然在學習javascript,任何幫助將不勝感激。我希望我很清楚。非常感謝。

HTML

<a href="#popup" rel="popup">open</a> 

<div id="popup" class="popup"> <a href="#new" rel="popup" onClick="rewrite('popup', 'blah')">Rewrite</a> 

</div> 
<div id="new" class="popup"> 
    <textarea id="new-text"></textarea> 
</div> 
<!-- This is the stuff that doesnt work for some reason <a href="#new" rel="popup"   onClick="rewrite('popup', 'blah')">Rewrite</a> 

<div id="new" class="popup"> 
<textarea id="new-text"></textarea> 
</div> 
--> 

JavaScript的

function rewrite(id, text) { 
    document.getElementById(id).style.display = 'none'; 
    document.getElementById('new-text').innerHTML = text; 
} 
+4

請將您的代碼包含在問題中,而不僅僅是在jsfiddle中。如果該網站永遠消失,您的問題就會失去所有背景。 – Madbreaks 2013-04-25 20:13:50

+1

好吧,我將代碼添加到它。我只是想讓問題更簡潔 – Alex 2013-04-25 20:21:05

+0

很難說什麼不行,當我點擊重寫時,我看到textarea的值爲'blah',這看起來正是你想要的嗎?我也很難理解你解釋的兩種不同情況。 – 2013-04-25 20:28:32

回答

1

我不完全清楚你在這裏做什麼,但從我讀取你的代碼的方式,你想設置文本區域的值爲特定的值。

這裏是你做的怎麼說:http://jsfiddle.net/JyV73/9/

function rewrite(id, text) { 
    $('#new-text').val(text); 
} 

你不使用彈出窗口,您使用的模態,這意味着它的即切換能見度頁面內一個div。您可以從這些組件訪問信息,無論它們是否可見,fyi。

不過,我不完全確定你在這裏做什麼。

+0

'id'參數未被使用,你應該刪除它嗎? – 2013-04-25 20:33:43

+0

此外,你有兩個文本區域具有相同的ID。 Id不能在同一頁面重用,只有類可以。 – 2013-04-25 20:34:10

+0

當然,你可以刪除我的例子的id,但他的目標是傳入一個id併爲其設置值。這裏是我更新的代碼:http://jsfiddle.net/JyV73/15/ – 2013-04-25 20:36:19

0

我改變document.getElementById('new-text').innerHTML = text;document.getElementById('new-text').value = text;,因爲它是要設置文本框的value屬性。

還與ID頁面上的每一個元素都需要有一個唯一的ID(好像你可能一直在試圖在一個點上重複使用的ID,但也許我錯了!)

我還是天堂」不管你想要達到什麼目標,但是這些變化都需要才能做出來。

此代碼是足以實現雖然你的第二個目標:http://jsfiddle.net/JyV73/19/

我增加了一個onClick屬性(onClick="rewrite('popup', 'blah')")爲您的「打開」鏈接做書面文本框。 :)

+1

我在彈出框上有id屬性。這只是一個巧合,「彈出」是ID和類的名稱 – Alex 2013-04-25 20:21:58

+0

我真的不明白jsfiddle,但我只是將該div的ID更改爲彈出並單擊更新,現在它可以工作 – Elliott 2013-04-25 20:24:25

+0

這可能是我的如果jsfiddle更改也適用於您的版本,則更改它! – Elliott 2013-04-25 20:25:02