jQuery attr方法无法添加属性

时间:2009-11-29 20:11:40

标签: jquery

在某些情况下,我想在同一个窗口中打开链接,而在其他情况下,我想在新窗口中打开它们。我有以下jQuery代码:

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

我有两个<a>包含在“main”div中。一个是直接在div下,另一个是埋在几个子div下。运行时,它只会将空白目标添加到第一个<a>标记。但是,当我通过Firebug设置断点并逐步执行它时,一切正常。有没有理由不能全速运转?什么是解决方法?

2 个答案:

答案 0 :(得分:1)

onload事件期间是否执行了特定代码?在jQuery中,您通常使用$(document).ready()。 E.g。

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

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

答案 1 :(得分:0)

尝试使用each()逐步完成A元素:

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