我正在尝试使用此 ajax 方法,但它不起作用

I'm trying to use this ajax method but it is not working

我创建了一个 select 元素,我想在其中 link 我的 xml 文件,所以当用户 select 的项目的段落来自 XML 应该为每个出现。所以我写了 ajax 方法,现在对我不起作用,是的,文件 (english.xml) 在同一目录中。

这适用于 Apache Cordova 8.0,Java脚本版本 8.0。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
<meta name="http-equiv" content="Content-type: text/html;" charset="utf-8">
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
<link rel="stylesheet" type="text/css" href="js/jquery-1.5.0.mobile.min.css">
<link rel="stylesheet" type="text/css" href="css/english.css">
</head>
<body>

<div>
<select class="letters" id="alpha" onchange="giveSelection(this.value)">    
      <option value="a">A</option>
      <option value="b">B</option>
      <option value="c">C</option>
      <option value="d">D</option>
      <option value="e">D</option>
      <option value="f">F</option>
</select>

    <select class="story" id="story" onchange="storyelected(this.value)">

      <option data-option="a">A blessed home</option>
      <option data-option="a">Amazing park</option>
      <option data-option="a">As they passed</option>
      <option data-option="b">Blessed times</option>
      <option data-option="b">Being humble</option>
</select>
</div>

    <div data-role="content" class="ui-content" role="main" placeholder="Filter by data-option">
    <div class="content-primary">
    <hr>

<div style="padding: 20px; background-color:White; border-color:Gray; border-style:solid; border-width:1px;border-radius:10px; font-family: Times New Roman; text-transform: none;" id="textarea" type="text" name="textarea">          

<p id="lyrics"></p> // this is where i want the story to be shown

</body>
</html>

这是我的 Java 脚本代码。

var alpha = document.querySelector('#alpha');
var story = document.querySelector('#story');
var options2 = songs.querySelectorAll('option');

function giveSelection(alphaValue)
{
songs.innerHTML = '';
for(var i = 0; i < options2.length; i++)
{
    if(options2[i].dataset.option === alphaValue)
{
    story.appendChild(options2[i]);
}
    }
}
giveSelection(alpha.value);

    $.ajax({
      type: 'get',
      url: 'english.xml',
      dataType: 'xml',
      success: function(data) {
        console.log(data)
      }
    });

当用户 select 从 select 中选择一个选项时,我希望只有从 XML 文件中提取的主题(<p> 类别)显示为输出。

如果您像这样在控制台中打印错误,可能更容易调试:

$.ajax({
  type: 'get',
  url: 'english.xml',
  dataType: 'xml',

  error: function (e) {
    console.log("XML reading Failed: ", e);
  },

  success: function(data) {
    console.log(data)
  }
});

另外,请注意,在您发布的代码中,最后缺少分号 (;)。

我发现函数没有被调用。

Html

<select class="letters" id="alpha" onchange="giveSelection(this.value)" onclick="calltext()">

JavaScript

function (calltext){$ajax....}

我还必须更改 select 的 ID。