【问题标题】:Appending javascript to div with jquery使用 jquery 将 javascript 附加到 div
【发布时间】:2014-12-17 20:36:51
【问题描述】:

我正在尝试将以下 javascript 附加到用户按下 ESC 键时将出现的 div。我似乎无法让 JavaScript 显示正在使用的 javascript 的值:

    $("#json").hide();
    $(document).keydown(function (e) {
    if (e.keyCode == 27) {
         $("#json").append("<script type="text/javascript"> + "window.location.href = '/editorialPortal' + '?' + this.id + '=' + this.options[this.selectedIndex].value;" + "</" + script>").toggle();
    }
});

我不确定我在哪里缺少字符串转义或引号。

【问题讨论】:

  • 什么?当用户按下退出键时,您想转到一个新页面吗?
  • 不,JavaScript 会从下拉列表中提取当前 URI 和另一个参数,该参数用于提供下拉选择的结果。此 javascript 应显示基于该选择的当前 URI,该选择对基本用户隐藏。
  • 好吧this不是指下拉菜单,它指的是document - 和window.location.href用于改变页面位置,toggle用于隐藏和显示一个元素......有很多错误。你的最终目标是什么?
  • 忽略下拉选择部分(我正在解释该 URI 的使用)。这个想法是简单地获取当前 URI 并将其附加到按键触发的 div 中。

标签: jquery append html-escape-characters


【解决方案1】:

试试 e.which 而不是 e.keyCode

另外,由于你用双引号打开字符串,你不能在字符串中使用双引号(用单引号打开它,只有当你想使用'+'或关闭整个字符串时才使用单引号)。

【讨论】:

    【解决方案2】:

    我认为问题在于引号:

    $('#json').append('<' + script type="text/javascript">window.location.href = "/editorialPortal?' + this.id + '=' + this.options[this.selectedIndex].value + '"  </' + 'script>').toggle();
    

    在这个例子中,我在定义字符串时使用了单引号,所以里面可以使用双引号。

    另外,一定要在你的小提琴中包含 jQuery。上面的代码除了在未定义的变量this.options[this.selectedIndex].valuethis.id 上出错之外有效。分解脚本标签是为了让jsfiddle开心。

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多