代码之家  ›  专栏  ›  技术社区  ›  Greg Charles

jquery attr方法未能添加属性

  •  1
  • Greg Charles  · 技术社区  · 16 年前

    在某些情况下,我希望在同一窗口中打开链接,而在其他情况下,我希望在新窗口中打开链接。我有以下jquery代码:

    if (internal) {
        jQuery(".main a").removeAttr('target');
    } else {
        jQuery(".main a").attr('target', '_blank');
    }
    

    我有两个 <a> S包含在“主”分区中。一个直接位于该分区之下,另一个埋在两个子分区之下。当它运行时,它只将空白目标添加到第一个 <A & GT; 标签。但是,当我通过Firebug设置一个断点并单步执行时,一切都正常。它不能全速工作有什么原因吗?解决方法是什么?

    2 回复  |  直到 16 年前
        1
  •  1
  •   BalusC    16 年前

    特定代码是否在onload事件期间执行?在jquery中,通常使用 $(document).ready() 为此。例如。

    $(document).ready(function() {
        // Do stuff onload.
    });
    

    否则,它将在HTML DOM树尚未完全建立和初始化时立即执行。

        2
  •  0
  •   leepowers    16 年前

    试用使用 each() 跨过 A 元素:

    jQuery(".main a").each(function() {
      $(this).attr('target', '_blank');
    });