我是所有JavaScript和jQuery-stuff的新手。请原谅我的编码或肮脏风格的任何愚蠢的缺点。我为您经验丰富的方面的所有建设性反馈感到高兴。
我尝试动态添加一些jQuery元素,例如一些新的精选菜单。在我的示例中,用户应决定他要自定义多少辆车,并根据我想为每辆选择的每辆车创建一个新的选择菜单。
我可以做到这一点,如果用户选择" 2辆车",则jQuery将添加两个新的选择菜单。但是我的问题是这些菜单不再以jQuery风格。
我在这里做错了什么?是否也可以根据选择的汽车数量在"循环"中添加新菜单?
这是我的代码:
<script type="text/javascript">
$('#select-choice-1').live( "change", function(event, ui) {
var valuee = $(this).val();
if (valuee == '2') ($('<label for="select-choice-2" class="select">Color of car #1</label>' +
'<select name="select-choice-2" id="select-choice-2">'+
'<option value="red">red</option>'+
'<option value="blue">blue</option>'+
'</select><br><br>' +
'<label for="select-choice-3" class="select">Color of car #2</label>' +
'<select name="select-choice-3" id="select-choice-3">'+
'<option value="green">green</option>'+
'<option value="yellow">yellow</option>'+
'</select>').appendTo('#site'));
if (valuee == '3') ($('<h1>Test</h1>').appendTo('#site'));
});
</script>
这是HTML页面:
<div id="site" data-role="fieldcontain">
<label for="select-choice-1" class="select">Number of cars</label>
<select name="select-choice-1" id="select-choice-1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div><!-- "site" -->
$('#site').delegate("#select-choice-1", "change", function(event, ui) {
var valuee = $(this).val();
var constructhtml = '';
if (valuee == '2') {
constructhtml +='<label for="select-choice-2" class="select">Color of car #1</label>' + '<select name="select-choice-2" id="select-choice-2">'+ '<option value="red">red</option>'+ '<option value="blue">blue</option>'+ '</select><br><br>' + '<label for="select-choice-3" class="select">Color of car #2</label>' + '<select name="select-choice-3" id="select-choice-3">'+ '<option value="green">green</option>'+ '<option value="yellow">yellow</option>'+ '</select>';
}else if (valuee == '3') {
constructhtml +='<h1>Test</h1>';
}
$('#site').append(constructhtml);
});
op需要动态添加的选择菜单
将这个div放在您页面的底部
<div id="selectcontainer"></div>
$(document).ready(function(){
var str = '';
str+='<select>';
for(i=1;i<=10;i++){
str+='<option value='"+i+"'>'"+i+"'</option>';
}
str+='</select>';
$('#selectcontainer').html(str);
});