【问题标题】:Problem in using 'href=""' attribute inside listItem在 listItem 中使用 'href=""' 属性时出现问题
【发布时间】:2010-12-20 07:13:59
【问题描述】:

我在 html 代码中有列表视图。我在 javascript 中动态填充列表视图。单击列表项后,我显示了一个 pdf。我在列表项('li')中使用了锚标记。这是代码。

$('div').live('pageshow',function(event, ui){

      var parent = document.getElementById('listview')
      var listItem = document.createElement('li');
        listItem.setAttribute('id','listitem');
        listItem.innerHTML = "<a href="Contacts.pdf" target="_BLANK" >ITEm</a>";
parent.appendChild(listItem);
     });

但它不起作用。在浏览器中,列表项不显示在列表中。如果我删除“ href="Contacts.pdf" target="_BLANK" " 那么它工作正常。 这有什么问题?我将此代码与 jquery-mobile alpha2 一起使用。请帮忙。提前致谢。

【问题讨论】:

  • 你能显示生成的 HTML 吗?
  • 您的代码将生成无效的 HTML,因为您将拥有许多具有相同 ID 的项目 - 真是个坏主意。如果您不需要 ID,则只需删除该行,否则添加一些唯一值,例如当前列表项的数量。

标签: javascript jquery html


【解决方案1】:

双引号问题

替换这一行

 listItem.innerHTML = "<a href='Contacts.pdf' target='_BLANK' >ITEm</a>";

在双引号内使用单引号。

【讨论】:

    【解决方案2】:

    要在字符串中使用引号,您必须使用反斜杠对其进行转义:

    listItem.innerHTML = "<a href=\"Contacts.pdf\" target=\"_BLANK\" >ITEm</a>";
    

    我发现在创建 HTML 代码时在字符串周围使用撇号更容易,这样引号就不需要转义了:

    listItem.innerHTML = '<a href="Contacts.pdf" target="_BLANK" >ITEm</a>';
    

    【讨论】:

      【解决方案3】:

      您可以在一行中完成所有操作:

      $("#listview").append("<li><a href=\"Contacts.pdf\" target=\"_BLANK\">ITEm</a></li>");
      

      【讨论】:

        猜你喜欢
        • 2016-11-21
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-16
        • 2011-06-08
        相关资源
        最近更新 更多