使用Popup的Javascript innerHTML

时间:2013-04-25 20:12:20

标签: javascript jquery html css

我无法理解为什么这个内部html脚本无效。我在jsFiddle上发布了javascript。你可以在这里看到它:http://jsfiddle.net/JyV73/1/

我有两个版本的链接。在第一个中,重写链接位于需要关闭的弹出窗口中,另一个在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;
}

2 个答案:

答案 0 :(得分:1)

我并不完全清楚你要在这里做什么,但从我读取代码的方式来看,你想要将文本区域的值设置为特定值。

这是你如何做到的:http://jsfiddle.net/JyV73/9/

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

你没有使用弹出窗口,你正在使用模态,这意味着它是一个切换可见性的页面内部的div。您可以访问这些组件中的信息,无论它们是否可见,fyi。

尽管如此,我还不完全确定你在这里要做什么。

答案 1 :(得分: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')")来写入文本框。 :)