我有以下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进行先行功能....
答案 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));