从服务返回的JavaScript jQuery传递值

时间:2016-03-14 07:30:17

标签: jquery ajax

我有以下JS

$(document).ready(function () {
    window.onload = initializeSpeciesMap();
    getSpeciesList();

    $("#btnSpecies").click(function () {
        alert($("#speciesList").val());
        addMyMarker($("#speciesList").val());
    });
    });

    // get list of birds by species to populate the sayt
    function getSpeciesList() {
    var ajax = new XMLHttpRequest();
    ajax.open("GET", "http://ebird.org/ws1.1/ref/taxa/ebird?      cat=species,hybrid&fmt=json&locale=en_US", true);
    ajax.onload = function () {
        var list = JSON.parse(ajax.responseText).map(function (i) { return i.comName + " - <p id='dt'> " + i.sciName + "</p>"; });
        new Awesomplete(document.querySelector("#speciesList"), { list: list });
        $(".input-loader").css("background-image", "none");
    };
    ajax.send();
}

这有效,它在我的html中返回以下示例:

<li aria-selected="true"><mark>Osprey</mark><p id="dt"> - Pandion haliaetus</p></li>

我需要获取该值并仅将“sciName”变量返回给另一个函数....我希望comName和sciName都出现在我的UI上,但我只想传递sciName。

我怎样才能获得这个价值?我希望这是有道理的。

li正在使用awesomeplete进行先行功能....

1 个答案:

答案 0 :(得分:0)

这太丑了但是有效..

        var species_str = $("#speciesList").val();
    var start_pos = species_str.indexOf('-') + 1;
    var end_pos = species_str.indexOf('-', start_pos);
    var scientificName = species_str.substring(start_pos, end_pos);
    alert($.trim(scientificName));