Javascript jQuery:为什么它从一个元素创建两个列表项
我一直在尝试使用jQuery在一个特定的div中创建一个列表,它应该作为一个菜单,链接到页面中的某些菜谱。因此,列表是根据html中的配方确定的。 我已经为每个菜谱创建了id,并创建了列表和链接。然而,在列表中,代码为每个食谱创建了两个Javascript jQuery:为什么它从一个元素创建两个列表项,javascript,jquery,list,Javascript,Jquery,List,我一直在尝试使用jQuery在一个特定的div中创建一个列表,它应该作为一个菜单,链接到页面中的某些菜谱。因此,列表是根据html中的配方确定的。 我已经为每个菜谱创建了id,并创建了列表和链接。然而,在列表中,代码为每个食谱创建了两个,我已经尝试了所有我能想到的方法来修复它 以下是html代码(由于长度原因,我没有包括所有内容): 波塔提斯。 ... Potatisbullar。 ... 波塔提斯莫斯 ... JS: $(文档).ready(generateMenu); $(文
波塔提斯。
...
Potatisbullar。
...
波塔提斯莫斯
...
JS:
$(文档).ready(generateMenu);
$(文件).ready(附加概念);
函数生成器u()
{
var menyList=$(“
”);
$(“#receptmeny”).append(menyList);
$(“.post h4:第一个孩子”)。每个(函数(i)
{
var txt=$(this.closest(.post”).find(“h4”).text();
变量li=$(“”)
.appendTo(menyList);
var aLink=$(“”)
.attr(“href”、“#recept”+i)
.text(txt)
.附件(李);
});
}
函数addedRecept()
{
$(“.post h4”)。每个(功能(i)
{
$(this.attr(“id”,“recept”+i);
});
}
这将创建以下列表:
- 波塔提斯
- 波塔提斯
- 肺大泡
- 肺大泡
- 波塔提斯莫斯
- 波塔提斯莫斯
$(文档).ready(generateMenu);
$(文件).ready(附加概念);
函数生成器u(){
var menyList=$(“
”);
$(“#receptmeny”).append(menyList);
$(“.post h4:第一个孩子”)。每个(函数(i){
txt=$(this).closest(.post”).find(“h4”).text();
var li=$(“”).appendTo(menyList);
var aLink=$(“”).attr(“href”,“接收”+i).text(txt).appendTo(li);
});
}
函数addedRecept(){
$(“.post h4”)。每个(功能(i){
$(this.attr(“id”,“recept”+i);
});
}
波塔提斯。
Potatisbullar。
波塔提斯莫斯
这是一个有趣而棘手的问题请检查jquery第一个函数的第二行-
var li=$(“”)
这应该是-
var li=$(“”)
然后,它将根据您的需要生成
祝你好运@MikaelLennholm尝试一下示例代码,它不会。至少在铬上!当我换成
$(“”)的部分
只是jQuery中
的简写,在Chrome中工作得非常好。为什么取消选择我的答案?我早就给出了同样的答案!我可以知道原因吗?我想我可以选择两个答案,因为你和戴维都给出了相同的答案。对不起,我弄错了,我会改回你的答案,因为你先给出了答案。(我是新来的,所以还在学习如何工作)好的,没有问题!祝你一切顺利!
<div id="primarycontent">
<div class="post">
<h4>
Potatis.
</h4>
<div class="contentarea">
<p>
...
</p>
</div>
</div>
<div class="post">
<h4>
Potatisbullar.
</h4>
<div class="contentarea">
<p>
...
</p>
</div>
</div>
<div class="post">
<h4>
Potatismos
</h4>
<div class="contentarea">
<p>
...
</p>
</div>
</div>
$(document).ready(generateMenu);
$(document).ready(addIdRecept);
function generateMenu()
{
var menyList = $("<ul></ul>");
$("#receptmeny").append(menyList);
$(".post h4:first-child").each(function(i)
{
var txt = $(this).closest(".post").find("h4").text();
var li = $("<li><li/>")
.appendTo(menyList);
var aLink = $("<a></a>")
.attr("href","#recept" + i)
.text(txt)
.appendTo(li);
});
}
function addIdRecept()
{
$(".post h4").each(function(i)
{
$(this).attr("id", "recept" + i);
});
}