Javascript数组的hrefs

时间:2010-05-05 16:19:19

标签: javascript jquery arrays

我正在尝试创建一个具有不同href的数组,然后附加到5个单独的元素。

这是我的代码:

var link = new Array('link1', 'link2', 'link3', 'link4', 'link5');

                    $(document.createElement("li"))
                    .attr('class',options.numericId + (i+1))
                    .html('<a rel='+ i +' href=\"page.php# + 'link'\">'+ '</a>')
                    .appendTo($("."+ options.numericId))

正如您所看到的,我正在尝试将这些项目从数组追加到我的页面末尾,因此每个链接都会将用户带到页面的不同部分。但我无法做到这一点。有没有办法创建具有不同链接的元素?

我是javascript的新手,所以如果这不是很有意义,我很抱歉。如果有人对我在这里问的问题感到困惑,我可以试着澄清一下我是否得到了一些反馈。

我想输出的代码是:

    <ul class="controls">
    <li class="controls1"><a href="page.php#link1"></a></li>
    <li class="controls2"><a href="page.php#link2"></a></li>
    <li class="controls3"><a href="page.php#link3"></a></li>
    <li class="controls4"><a href="page.php#link4"></a></li>
    <li class="controls5"><a href="page.php#link5"></a></li>
    </ul>

这与我得到的相似,但是当我应用andres descalzo提供的修复时,我的列表元素每个都重复5次。

非常感谢任何解决方案。

谢谢,

杰森

2 个答案:

答案 0 :(得分:4)

我不确定你想要什么,因为代码中存在一些未定义的值和语法错误,但这里有一个关于如何从数组创建元素并添加到现有ul元素的示例:

$(function(){
    $.each(['link1', 'link2', 'link3', 'link4', 'link5'], function(i, link){
        $('<li/>')
        .append(
            $('<a/>')
            .attr({ 'class': 'c' + i, ref: i, href: 'page.php#' + link })
            .text(link)
        ).appendTo('ul');
    });
});

使用现有的ul元素,它会产生:

<ul>
  <li><a class="c0" ref="0" href="page.php#link1">link1</a></li>
  <li><a class="c1" ref="1" href="page.php#link2">link2</a></li>
  <li><a class="c2" ref="2" href="page.php#link3">link3</a></li>
  <li><a class="c3" ref="3" href="page.php#link4">link4</a></li>
  <li><a class="c4" ref="4" href="page.php#link5">link5</a></li>
</ul>

(代替数组文字[...],您当然可以使用数组变量。)

答案 1 :(得分:1)

这样的事情?:

*编辑II * 以发表评论

var link = ['strategy', 'branding', 'marketing', 'media', 'management'],
          refNumericId = $("."+ numericId);

  $(link).each(function(i, el){

      $("<li></li>")
            .attr("id", numericId + "_" + (i+1))
            .attr("class", numericId + (i+1))
            .html("<a href=\"capabilities.php#"+el+"\"></a>")
            .appendTo(refNumericId);

  });

我在'easySlider1.7.js'文件中看到了你的代码,你在第123行的'for'中包含代码'var link = ['strategy,''应该在'after'之后'for'