2013-04-25 55 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