【发布时间】:2011-07-05 09:26:22
【问题描述】:
我正在通过 jQuery .html() 函数在页面上添加新的 li 和 div 元素。我传递的字符串有一个硬编码的类。但是尽管类已经在 css 文件中定义,但它仍然没有风格化。所以我确实使用 jQuery .css() 函数添加了样式,但仍然没有样式。如何将 css 添加到这些动态添加的 html 元素中?
for(i=0; i<directionList.length; i++) {
html += "<li class='dir-list'> \
<div class='dir-loc'><b>" + directionList[i].location + "</b></div><br /> \
<div class='dir-dest'> \
<div class='dir-dest-icon'><img src='markers/new/transit-small.gif' class='dir-va-mid' title='by transit'/></div> \
<div class='dir-dest-action'><span class='dir'>Ride to</span></div> \
<div class='dir-dest-loc'><span class='dir'><b>" + directionList[i].destination + "</b></span></div> \
<ul class='dir-routes'>";
// add routes
var routes = directionList[i].routes;
for(j=0; j<routes.length; j++){
html += "<li> \
<div class='dir-route-type-icon'><img src='markers/new/" + routes[j].type + "-small.gif' class='dir-va-mid' title='" + routes[j].type + "'/></div> \
<div class='dir-route-name'><span class='dir-va-mid' >" + routes[j].name + "</span></div> \
</li>";
}
html += "</ul> \
</div> \
</li>";
/*
var index = parseFloat(i)+1;
directions += "<li>" + directionList[i].location + "<span>";
//get routes
var routes = [];
routes = directionList[i].routes;
directions += "<ul>";
for(j=0; j<routes.length; j++){
directions += "<li> (" + routes[j].type + ") " + routes[j].name + "</li>" ;
}
directions += "</ul>";
directions += "</li>";
*/
}
html += "</ul>";
$('#directions').html(html);
CSS:
#directions div {
display:inline;
vertical-align:middle;
}
#directions ul#dir {
list-style:decimal;
}
#directions ul.dir-routes {
list-style: none;
}
.dir-va-mid {
vertical-align:middle;
}
强制添加CSS:
$("#directions div").css({'display':'inline', 'vertical-align':'middle'});
$("#directions ul#dir").css({'list-style':'decimal'});
$("#directions ul.dir-routes").css({'list-style':'none'});
$(".dir-va-mid").css({'vertical-align':'middle'});
编辑:我已经包含了我的文件here。有时间请看一下。
【问题讨论】:
-
请贴一些代码。听起来您通过 jQuery 添加的元素根本不匹配您现有的 CSS 选择器。
-
似乎每个人都不清楚“一些”代码的概念 :)