Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带弹出窗口的Javascript innerHTML_Javascript_Jquery_Html_Css - Fatal编程技术网

带弹出窗口的Javascript innerHTML

带弹出窗口的Javascript innerHTML,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我不明白为什么这个内部html脚本不能工作。我在JSFIDLE上发布了javascript。你可以在这里看到: 我有两个版本的链接。在第一个窗口中,重写链接位于需要关闭的弹出窗口中,在文本区域中打开另一个带有正确文本的弹出窗口 在第二种情况下,页面上只有一个链接,当它被点击时,希望能在wht textarea中打开带有正确文本的弹出窗口 唯一的问题是,它不适用于第二个版本,因为我必须关闭弹出窗口。如果我注释掉第一个document.getElementById(id).style.display

我不明白为什么这个内部html脚本不能工作。我在JSFIDLE上发布了javascript。你可以在这里看到:

我有两个版本的链接。在第一个窗口中,重写链接位于需要关闭的弹出窗口中,在文本区域中打开另一个带有正确文本的弹出窗口

在第二种情况下,页面上只有一个链接,当它被点击时,希望能在wht textarea中打开带有正确文本的弹出窗口

唯一的问题是,它不适用于第二个版本,因为我必须关闭弹出窗口。如果我注释掉第一个
document.getElementById(id).style.display='none'
,那么普通链接就可以工作了,所以我的第一个想法是创建两个函数。但是,由于此javascript是包含的php模板文件的一部分,我认为使用纯javascript解决此问题会更简单

我仍在学习javascript,如有任何帮助,将不胜感激。我希望我是清楚的。非常感谢你

HTML


我更改了
document.getElementById('new-text')。innerHTML=text
to
document.getElementById('new-text')。value=text
因为它是要设置的文本框的
属性

此外,页面上具有ID的每个元素都需要有一个唯一的ID(似乎您曾经尝试过重用ID,但可能我错了!)

我还没有弄清楚你到底想实现什么,但不管怎样,这些改变都需要做出

此代码足以实现您的第二个目标:


我在您的“打开”链接中添加了一个
onClick
属性(
onClick=“rewrite('popup','blah')”
),以写入文本框

我不完全清楚您想在这里做什么,但从我阅读代码的方式来看,您希望将文本区域的值设置为特定值

以下是如何做到这一点:

你没有使用弹出窗口,你使用的是modals,这意味着它是页面中切换可见性的一个div。您可以访问这些组件中的信息,无论它们是否可见,仅供参考


尽管如此,我还是不能完全确定你在这里想做什么

请在问题中包括您的代码,而不仅仅是JSFIDLE。如果那个网站消失了,你的问题就失去了所有的上下文。好吧,我在其中添加了代码。我只是想让问题更简洁,很难判断什么不起作用,当我单击“重写”时,我看到文本区域的值为“blah”,这似乎正是你想要的?我也很难理解你解释的两个不同的案例。对不起,我的措辞让人困惑。这个链接不起作用。但是如果我像这里()那样注释掉重写函数中的第一行,它就可以工作了。但是如果我这样做,那么当我有那个版本时,弹出窗口不会关闭。有道理?所以我想知道是否有一种方法可以使它同时适用于两个版本。你意识到版本中有一个错误不能正常工作吗<代码>未捕获类型错误:无法读取null的属性“style”。请务必始终检查错误消息并将其发布在此处。我在弹出框中有id属性。“popup”是id和classI的名称,这只是一个巧合。我并不真正理解jsfiddle,但我只是将该div的id更改为popup并单击了update,现在它工作了。如果jsfiddle更改也应用于您的版本,那么可能是我更改了它!好吧,它现在的设置方式很有效。这可能就是造成混乱的原因。但是由于某些原因,注释的html代码不起作用。因此,如果您取消注释,您将看到我所说的内容,而我无法找出原因。@Alex On没有ID为“popup”的元素,它被注释掉了,这就是为什么它出错了
ID
参数未使用,您是否应该删除它?另外,您有两个ID相同的文本区域。ID不能在同一页面上重复使用,当然,对于我的示例,您可以删除id,但他的目标是传入一个id并为其设置值。这是我的更新代码:他想隐藏其他东西的事实如何?这个解决方案在JSFIDLE中有效。所以我激动了一秒钟,但是当我在我的实际站点上使用它时,当我单击模态中的重写链接时,它不会关闭打开的模态。所以我不确定问题是什么。我检查了我的jquery版本,它是相同的。知道为什么它可能在JSFIDLE中工作,而不是在我的本地主机上工作吗。我意识到这是一个很难回答的问题,但有时人们以前也遇到过类似的问题。
<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>
-->
function rewrite(id, text) {
    document.getElementById(id).style.display = 'none';
    document.getElementById('new-text').innerHTML = text;
}
function rewrite(id, text) {
    $('#new-text').val(text);
}