我环顾四周,之前没有看过这个问题的答案,所以如果我弄错了,请原谅我。
我所拥有的是用户给出的文本字符串,基本上可以是任何东西。我用换行符"\n"
分割字符串,所以我区分了文本中的想法。我想将每个想法放入<span>
,并使用left: number-of px
将每个跨距与屏幕左侧隔开。我遇到的问题是我希望间距取决于开始每个想法的下划线数量。因此,如果一个想法是"_Blah blah"
,则css应为left: 5px
,如果想法为"__Blah blah"
,则css应为left: 10px
。
现在我的代码在每个想法的开头挑出下划线的数量,并在想法将被放入的范围内创建一个className。
我知道这可以通过像这样拥有大量的css属性来实现:
.lvl1-1 {
left: 0px;
}
.lvl1-2 {
left: 5px;
}
.lvl1-3 {
left: 10px;
}
... and so on
但是因为文本是未知的,并且可能存在无限级别和子级别,所以如果我可以有一些css字段或者根据className自动增加left属性的话,我将不胜感激。这可能吗?谢谢你的帮助!
这是一个可能有用的演示:Fiddle
答案 0 :(得分:1)
使用@LowerClassOverflowian,@ ssskoll和@AndreiVolgin的评论,我提出了这个解决方案:
var newDiv = $('<div></div>')
.text(lines[i])
.css({
'margin-left':(underscoreCount * 5) + 'px'
});
$('#div-text').append(newDiv);
underscoreCount
是每个想法中下划线的数量,lines[i]
是要添加的想法,而div-text
是包含添加的div的div的ID。