jQuery - 如何动态填充下拉列表/选择框/组合框?

5
我想动态向div添加一个下拉菜单(jQuery),但它无法工作。我想要以下结构:
<select id="surah_selection" style="position:relative; top:10px; left:25px"> 
      <option id="1">Select Surah</option> 
      <option id="2" >Al-Baqra</option>
      <option id="3">Al-Fatiha</option>
      <option id="4">Al-noor</option>
      <option id="5">Al-Tobah</option>
</select>  <!--Surah selection ends -->

我已经阅读了这个,但它并没有起作用。
下面是我尝试过的内容:
$('#book_selection').change(function(){
    alert("changed");
    var option = document.createElement("option");
    option.text = 'df';
    option.value = 'df';
    var temp = document.createElement('select');
    temp.appendChild(option);
    var root = document.getElementById('book_selection');
    root.appendChild(temp);
    alert("done");
});

5
仅仅阅读并不足够,要付诸实践。 - Rajaprabhu Aravindasamy
在这里检查一个完全解释的解决方案 http://stackoverflow.com/questions/20857764/php-mysql-dynamic-select-box/20858071#20858071 或许会对你有很大帮助。 - Marios Fakiolas
3
在说“它不起作用”时,您需要更加准确,因为这对我们理解问题很困难。 - dreamweiver
@MysticMagic,我已经更新了代码。 - Baqer Naqvi
3个回答

10

请查看下面的示例。这会对您有所帮助。根据您的需求进行更改。

$('#book_selection').change(function(){
    var newSelect=document.createElement('select');
    var selectHTML="";
    for(i=0; i<choices.length; i=i+1){
        selectHTML+= "<option value='"+choices[i]+"'>"+choices[i]+"</option>";
    }

    newSelect.innerHTML= selectHTML;
    document.getElementById('book_selection').appendChild(newSelect);
});

$(document).ready(function(){
var newSelect=document.createElement('select');
    var selectHTML="";
   /* for(i=0; i<choices.length; i=i+1){
        selectHTML+= "<option value='"+choices[i]+"'>"+choices[i]+"</option>";
    }*/
    selectHTML+= "<option value='test'>test</option>";

    newSelect.innerHTML= selectHTML;
    document.getElementById('book_selection').appendChild(newSelect);
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="book_selection"></div>

你也可以使用 jQuery。
$('#book_selection').change(function() {
    $("<select />").append($("<option>", {"value": "me", "text": "me"})).insertAfter($(this));
});

2

试一试这个

<select id="surah_selection" style="position:relative; top:10px; left:25px"> 
        <option id="1">Select Surah</option> 
        <option id="2" >Al-Baqra</option>
        <option id="3">Al-Fatiha</option>
        <option id="4">Al-noor</option>        
    </select> 

要向下拉框添加新选项,您可以尝试以下jQuery代码:

<script>
function add(){
        var str="<option id='5'>Al-Tobah</option>"
        $("#surah_selection").append(str);
    }
</script>

通过调用此函数,您的组合框将添加一个新选项。

0

我假设你在HTML中有一个空的<div>,并且想要将该选择器插入其中,例如:

<div class="surah_selection></div>

然后将您的选择插入到div中,您可以这样做:

var selectSurah = '<select id="surah_selection" style="position:relative; top:10px; left:25px"><option id="1">Select Surah</option><option id="2" >Al-Baqra</option><option id="3">Al-Fatiha</option><option id="4">Al-noor</option><option id="5">Al-Tobah</option></select>';
$(".surah_selection").prepend(selectSurah);

您可以在这里查看一个fiddle:Fiddle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接