简体   繁体   中英

Dynamically put data into select option droplist (jQuery)

Here is the code: This is were I take data from XML (this works, already tested it without jQuery):

 <script>
        $(document).ready(function(){
            var select = $('#mySelect');

            $.ajax({
                type: "GET",
                url: "http://mobile.qmschrysant.nl/keuzemenu/keuzemenu.xml",
                dataType: "xml",
                success: function(xml) {
                $(xml).find('menuitem').each(function(){
                    var title = $(this).find('title').text();
                    select.append("<option/><option class='ddheader'>"+title+"</option>");
                        $(this).find('value').each(function(){
                        var value = $(this).text();
                        select.append("<option class='ddindent' value='"+ value +"'>"+value+"</option>");

                        });
                    });
                    select.children(":first").text("please make a selection").attr("selected",true);
                    select.trigger('updatelayout');
                }
            });
        });
     </script>

An this is my select option (HTML):

<label for="selectmenu" class="select">Kies planning:</label>
          <form>
            <select id="mySelect" >

                <option>loading</option>
            </select>
          </form>

Now the weird thing, when I include this jQuery script:

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>

Then the droplist got awesome look, but does not contain any information.
When I comment out that line, the droplist looks normal, but now it DOES contain the information (so this is the prove, that it does work).

But why doesn't it work when I include the jQuery line? I can't find the problem.

(see picture for maybe better explanation) 在此输入图像描述

EDIT: all includes that I use:

<link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

You have twice the import of jquery :

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

Remove the oldest one (the second line).

Or, better, replace both lines by :

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

(before the inclusion of jquery mobile)

So :

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script>

OP "used the newest jquery mobile.js and now everything works perfectly".

This seemed to be a compatibility problem.

Changed:

<script src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.js" type="text/javascript"></script>
<link href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css">

to:

<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js" type="text/javascript"></script>
<link href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" rel="stylesheet" type="text/css">

It makes not sense for me :(

The first script needs jQuery to work, so you HAVE jQuery included.

And the

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>

line doesn't change droplist look.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM