【问题标题】:JavaScript - dynamic variables won't update - What's the issue?JavaScript - 动态变量不会更新 - 有什么问题?
【发布时间】:2015-11-14 20:51:22
【问题描述】:

背景 大家好,首先感谢您的帮助。这个问题已经困扰了我很长一段时间,我似乎无法弄清楚。

一些背景,我正在创建一个链接到存储电影海报的数据库的页面。这个页面将允许我根据两个因素检索特定的电影海报:传递的电影 ID 和海报大小。

具体说明

我正在尝试将 data-pp-pubid 的值更改为来自发布者 ID(在本例中为金刚)的输入。我也想从我的下拉框中填充 data-pp-placementtype 做同样的事情。

如果我在 html 中使用静态信息,这将有效。但是,我想创建动态变量来省去不断编辑 html 文件的麻烦。这就是我目前所得到的。

<div>
 <form>
    <select id="generic_size" name="Poster Size">
            <option value="120x90">120x90</option>
            <option value="120x240">120x240</option>
            <option value="120x600">120x600</option>
            <option value="150x100">150x100</option>
            <option value="170x100">170x100</option>
            <option value="190x100">190x100</option>
            <option value="234x400">234x400</option>
            <option value="234x60">234x60</option>
            <option value="250x250">250x250</option>
            <option value="280x280">280x280</option>
            <option value="300x50">300x50</option>
            <option value="300x250">300x250</option>
            <option value="468x60">468x60</option>
            <option value="540x200">540x200</option>
            <option value="720x90">720x90</option>
            <option value="800x60">800x60</option>
    </select>

Publisher ID: <input type="text" value="King Kong" id="movieId">
 <input type="submit" value="Get poster" 
  onclick="javascript:getMovInfo(); setSize(); getPoster();";>
</form>
</div>

        <script type="text/javascript" data-pp-pubid="Mad Max" data-pp-placementtype="120x240"> (function getPoster(d, t) {
        "use strict";
        var s = d.getElementsByTagName(t)[0], n = d.createElement(t);
        n.src = "//movietime.adtag.now.com/merchant.js";
        s.parentNode.insertBefore(n, s);
        }(document, "script"));
        </script>

<script type="text/javascript">

 function getMovInfo() {
  var movRetrieve= document.getElementById("movieId").value;
  var movInfo = document.getElementsByTagName("script")[2];
  var movSet = movInfo.setAttribute("data-pp-pubid", movRetrieve);
  }

 function setSize (){
  var sizeDropDown= document.getElementById("generic_size");
  var sizeSelected= sizeDropDown.options[sizeDropDown.selectedIndex].value;
  var sizeInScript = document.getElementsByTagName("script")[2];
  var newSize = sizeInScript.setAttribute("data-pp-placementtype", sizeSelected);
 }
</script>

再次感谢,这是我的第一篇文章!

【问题讨论】:

  • 为什么这不起作用??
  • 不工作是什么意思?我已经设置了这个 plunker,它似乎工作。 plnkr.co/edit/DsP7Kj31NIayAY5JQptF?p=preview
  • 变量已更改,但我需要使用新变量和 location.reload() 重新加载页面;似乎没有成功
  • 第一:为什么你在函数“getPoster”中的“d”、“t”参数从不使用它们?下一步:在一个地方,您直接使用全局可用的“文档”对象,并且在 getPoster 函数中希望文档作为参数传递。
  • 对可能的问题有什么想法吗?

标签: javascript html custom-data-attribute dynamic-variables


【解决方案1】:

好的,那么您应该将您拥有的html数据转换为代码中的一些数据。一个数组 ["300x50", ...] 将完成这项工作。然后你必须用数据填充你的选择。

【讨论】:

  • 我不明白?正在填充数据。页面只是没有使用动态变量重新加载
猜你喜欢
  • 2015-11-25
  • 1970-01-01
  • 2019-08-19
  • 2011-01-25
  • 2018-07-09
  • 2022-12-06
  • 2022-12-20
  • 2018-11-03
  • 2014-01-15
相关资源
最近更新 更多