0

我想获取 xml 元素的 id,但我不知道如何访问它。我随机调用元素,所以我不知道如何获取当前元素信息

要了解我在做什么,请查看我的代码:

我有一个包含 2 个信息(一个 youtube 链接和一个相关 ID)的 xml 文件,如下所示:

<videos>
   <video id="0">o6f9wJ1DWhY</video>
   <video id="2">sp_WV91jx8E</video>
   <video id="3">plWnm7UpsXk</video>
   <video id="4">a1Y73sPHKxw</video>
   <video id="5">9avT0e5KPPU</video>
   <video id="6">VTO5yiN1b-I</video>
   <video id="7">HnENgvGFc4</video>
   <video id="8">d8u4CEBVq7s</video>
   <video id="9">abRplCazEjk</video>
</videos>

在下一步中,我将外部 xml 文件的信息保存在变量中

var jqxhr = $.ajax({
type: 'POST',       
url: "freeakshow.xml",
dataType: 'xml',
global: false,
async:false,
success: function(data) {
    return data;
}
}).responseText;

xml_string = jqxhr;

然后我使用 DOMParser 将链接保存在数组中,以便稍后访问它们

function get_ids_from_xml_string(xml_string) {
// Parse the XML string into a XMLDocument
var doc = window.DOMParser
            ? new DOMParser().parseFromString(xml_string, 'text/xml')    // Standard
            : new ActiveXObject('Microsoft.XMLDOM').loadXML(xml_string); // IE

// Find the answer nodes
var id_nodes = doc.getElementsByTagName('video');
var videos = [];

// Loop through them and save their text content into an array
for (var i = 0; i < id_nodes.length; i++) {
     videos.push(id_nodes[i].firstChild.data)
}

return videos;
}

var videos = get_ids_from_xml_string(xml_string);

之后我从数组中得到一个随机链接,所以我可以用它来用 Youtube API 播放它,但这现在没关系

function getId() {
  return videos[Math.floor(Math.random() * videos.length)];

这是一个问题:我如何获得从 getId() 获得的当前随机链接的 id

我想在 div 中显示它,这样我就可以看到哪个 id 是当前的,哪个 id 是最后一个

(要了解这是什么意思,我想显示随机播放视频的当前和最后一个 id)}

4

2 回答 2

0

You can update your getId function to store the id that it randomly produced. Example:

var currentId, lastId;

function getId() {
  //save the prev id in the lastId variable
  lastId = currentId;
  //get a new id and store it
  currentId = Math.floor(Math.random() * videos.length);
  //return the corresponding video
  return videos[currentId];
}

Now you can use the currentId and the lastId, to match your needs

于 2013-04-07T18:42:17.147 回答
0

“显示”数据以进行调试的常见解决方案是使用 Chrome 中的开发人员工具中的控制台(或类似的控制台或 Firefox 或 IE)。你可以这样写一行

Console.log(getId());

然后它将在控制台中打印出来供您查看。chrome 中的 Web 开发人员工具是工具 > 开发人员工具。这是一篇很好的文章,它广泛涵盖了 Chrome https://developers.google.com/chrome-developer-tools/docs/console中的控制台。

如果您一心想在 div 中显示信息,则可以使用这样的 div 集。

<div id="getIdOutput"></div>

然后像这样的javascript

document.getElementById("getIdOutput").innerHTNL = getId()

显示 getId() 的输出!

于 2013-04-07T18:37:50.510 回答