我有一个链接列表,这些链接是根据数据库对象动态创建的,当我按下一个对象时,我需要向下一个html页面传递一个变量。
我的代码是:
sections.forEach(sec => {
var li = jQuery(`<a href='/dish.html'><li>${sec.sectionName}</li></a>`)
jQuery('#sections').append(li);
});
jQuery('#sections').click(function() {
//here I need to determine what link was pressed by the user.
});
#sections is an ordered list
谢谢
答案 0 :(得分:1)
您可以为每个“ li”元素附加动作侦听器,而不是确定按下了哪个链接。 顺便说一句,这是一个约定,当您将任何DOM元素分配给变量名时,它会在变量名的开头添加“ $”符号(这就是为什么这样做了)。
sections.forEach(sec => {
var $li = jQuery(`<a href='/dish.html'><li>${sec.sectionName}</li></a>`);
$li.on('click', () => {
//here you can attach listener for each element. You can reference using:
var $currentElement = $(this);
//now you can operate on current anchor element.
});
jQuery('#sections').append($li);
});
答案 1 :(得分:1)
您可以这样操作。我不知道您必须从<li>
中提取哪些数据。我提取了<li>
中包含的文字,希望对您有所帮助。
var sections = [{"sectionName":"rahul"},{"sectionName":"rohit"}]; // My dummy Object
sections.forEach(sec => {
var li = jQuery(`<a class="mylinks" href='#'><li>${sec.sectionName}</li></a>`)
jQuery('#sections').append(li);
});
$(document).on("click",".mylinks",function(){
var touched_li = $(this).find("li").text();
alert(touched_li); // Get section name. e.g rahul
});