我使用jquery将html代码附加到div。部分代码使用循环中的连接变量引用div的id。
$(... +
'<div class="recommendations filter" id="recCards-'+ i +'">' +
'<div><h5>Recommended Cards</h5></div>' +
'<ul></ul>' +
'</div>' +
...
).appendTo('.someDiv');
然后我试图通过引用“.recommendations”div的ID来将来自另一个循环的代码附加到ul中......
var recCardsList = $(div).attr('id', '.recCards-'"+i+"' ul');
$('<div>'+recCardName+'</div>').appendTo(recCardsList);
我已经尝试了我能想到的每个引号组合,但没有任何东西正确地抓住div来附加新内容
答案 0 :(得分:1)
实际上,您的代码不会将新创建的内容附加到var recCardsList = $(div).attr('id', '.recCards-'"+i+"' ul');
$('<div>'+recCardName+'</div>').appendTo(recCardsList);
,因为它有一些错误:
.attr('id', '.recCards-'"+i+"' ul')
通过撰写div
,您无法从id
获取列表,但是,您正在尝试更新其$('#recCards-'+i+' ul')
。
实际上,如果我们将两个参数传递给 .attr()
,第一个将是目标属性,第二个是新值。
所以要获得div,你应该在你的循环中使用var recCardsList = $('#recCards-'+i+' ul');
$('<div>'+recCardName+'</div>').appendTo(recCardsList);
它将得到相应的列表,所以你的代码看起来像:
$("#someId")
此处使用id="someId"
将从页面获取带有htmlwidgets
的元素。
答案 1 :(得分:0)
试试这个:
var recCardsList = $(div).attr('id', '.recCards-'+i+' ul');
答案 2 :(得分:0)
假设变量i仍在上述解决方案的函数范围内
'recCards-'+i+' ul'
肯定会有效,正如评论中所说的那样,使用console.log()或alert()我的变量是什么,因为给出了什么,我是空的。
如果它们在同一个函数中你也可以查看这篇文章,将2个循环与appendTo()和append()
结合起来答案 3 :(得分:0)
你很难得到这样的名单。 试试这个:
var recCardsList = $('#recCards-' + i + ' ul');
将<div>
追加到<ul>
也无效。它应该是<li>
:
$('<li>'+recCardName+'</li>').appendTo(recCardsList);
答案 4 :(得分:0)
试试这个,使用面具并用i替换,
var html = document.getElementsByTagName('html')[0];
var button = document.getElementById('template-button');
var nightmode = true;
function changeTemplate(){
//change to lighter color if black and vice versa
if(nightmode){
html.style.background = "#EEE";
html.style.color = "#000";
button.innerHTML = "Nightmode: OFF";
}else{
html.style.background = "#111";
html.style.color = "#0F0";
button.innerHTML = "Nightmode: ON";
}
nightmode = !nightmode;
}