我正在尝试创建一个具有不同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次。
非常感谢任何解决方案。
谢谢,
杰森
答案 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'