如何根据Javascript <script>?</script>填充Div

时间:2013-10-17 13:43:36

标签: javascript html

我正在使用maxminds geoip脚本而我正在使用

<script>document.write( geoip_city() );</script>

显示用户本地城市。对我来说,这将是New York。我通常对此脚本没有任何问题,但当我将其包含在我的fancybox模式中时,页面仅以黑色文本显示“纽约”,页面的其余部分完全空白。

我的问题是如何获得价值 <script>document.write( geoip_city() );</script>而不是将其直接粘贴到fancybox模式中,如何将New York的值打印到div(例如

<div class="userscity"></div>那样在div / class发布的网站上哪里会发布用户城市?

2 个答案:

答案 0 :(得分:0)

让我们从代码开始,然后我会给出解释:

<script>
    var geoipOutput = geoip_city();
    var element = document.querySelector(".userscity");
    element.innerHTML = geoipOutput;
</script>

您的javascript始终必须位于<script>标记中。你现在拥有它的方式,你只是将整个文档重写为geoip_city()函数的结果。

相反,我创建了一个名为geoipOutput的变量。我不知道你的geoip_city()电话是什么,所以这可以让你保存输出并根据需要进行调整。或者你可以检查它是否等于“纽约”,如果没有则表现不同,或做任何其他想到的事情。

接下来,我找到了你想要的课程的div。请注意,根据MDN,这将返回与该选择器匹配的第一个 div。如果有多个,您可以使用document.querySelectorAll并循环答案。

最后,我设置了div的innerHTML属性。这应该以你想要的方式显示它。

答案 1 :(得分:0)

geoip_city()函数返回一个值,在您的情况下是“纽约”。目前,您将该值发送到document_write()函数,该函数将“New York”写入文档的末尾。

要将该值写入特定div,您将执行以下操作:

<script>
    var city = geoip_city();
    var div = document.querySelector(".usercity");
    div.innerText = city;
</script>

首先,获取geoip_city()的值。

然后,找到要放入的元素。 querySelector使用CSS样式选择器来查找元素。

最后,将值赋给div的innerText属性。

如果您希望“纽约”与其他文本内联,请使用跨度而不是div来捕获值。