这是一段代码,可以帮助您满足您的需求。
<div>
<ul id="ulGoalkeepers"><li>GK</li></ul>
<hr />
<ul id="ulDefenders"></ul>
<hr />
<ul id="ulMidfielders"></ul>
<hr />
<ul id="ulStrikers"></ul>
</div>
<select id="ddlFormation">
<option></option>
<option value="4-4-2">4-4-2</option>
<option value="4-5-1">4-5-1</option>
</select>
<script type="text/javascript" language="javascript">
function formationChanged(){
var formation = $("#ddlFormation").val();
if (formation != undefined && formation != '') {
$("#ulDefenders").empty();
$("#ulMidfielders").empty();
$("#ulStrikers").empty();
var parts = formation.split('-');
var defenders = parts[0];
var midfielders = parts[1];
var strikers = parts[2];
for (var i = 0; i < defenders; i++) {
$("#ulDefenders").append('<li>DEF</li>');
}
for (var i = 0; i < midfielders; i++) {
$("#ulMidfielders").append('<li>MID</li>');
}
for (var i = 0; i < strikers; i++) {
$("#ulStrikers").append('<li>STR</li>');
}
}
}
$(document).ready(function () {
$("#ddlFormation").bind("change", formationChanged);
});
</script>
编辑:
我不喜欢 CSS 的想法,因为你失去了 html 元素的结构。后卫、中场都将在同一个名单中,这不是很好。另一方面,可能会有一些想法如何实现它,并且很大程度上取决于您真正需要什么。例如:
CSS:
.team div
{
float: left;
width: 50px;
}
.team div.first
{
clear: both;
}
HTML:
<div class="team">
<div class="goalkeeper">GK</div>
<div class="defender first">DEF</div>
<div class="defender">DEF</div>
<div class="defender">DEF</div>
<div class="defender">DEF</div>
<div class="midfielder first">MID</div>
<div class="midfielder">MID</div>
<div class="midfielder">MID</div>
<div class="midfielder">MID</div>
<div class="striker first">STR</div>
<div class="striker">STR</div>
</div>
但这在 IE7 中不起作用。您可以尝试对此进行更多调查。另一个想法是使用css绝对定位。例如,您通过 jquery 添加适当的类,因此一个项目将具有例如 class="midfielder second" 并且您在 css 中将其解释为“midfielder”类的“top”css 样式和“second”类的“left”css 样式.