从javascript中的一个元素中获取属性,在javascript中随机调用
我想获取xml元素的id,但我不知道如何获取它.. 我通过随机调用元素所以我不知道我能得到当前元素信息从javascript中的一个元素中获取属性,在javascript中随机调用
要理解我在做什么来看看我的代码:
从来就得到了一个XML文件2个信息(YouTube链接和一个相关的ID)像这样:
<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来播放它,但是这件事情doesn't现在
function getId() {
return videos[Math.floor(Math.random() * videos.length)];
这里是问题:我如何才能让当前随机链接的id我得到了来自的getId()
我想在一个div来显示它,这样我可以看到哪个ID是当前和ID是最后一个
(要理解这是关于什么的,我想显示当前以及随机播放视频的最后一个ID) }
“显示”调试数据的常见解决方案是使用Chrome中的Developer Tools(或类似的控制台或Firefox或IE)中的控制台。你可以这样写一条线
Console.log(getId());
然后它会打印出来在控制台*您查看。 Chrome中的Web Developer工具是Tools> Developer Tools。这是一篇很好的文章,广泛涉及Chrome https://developers.google.com/chrome-developer-tools/docs/console中的控制台。
如果你有心在div上显示信息,可以使用像这样的div集。
<div id="getIdOutput"></div>
然后JavaScript的这样
document.getElementById("getIdOutput").innerHTNL = getId()
要显示的getId的输出()!
您可以更新您的getId函数来存储它随机生成的ID。 例子:
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];
}
现在你可以使用currentId和lastId,以满足您的需求
这将工作完美的情况下,getId会给我我想要的id,再次是坏的命名对不起.. getId只返回链接,而不是我想要的id ..我想连接id链接,你可以看到它在我的XML文件,如 ..我没有链接的相关ID,我不知道如何访问它 – 2013-04-07 18:59:07
这是很好的知道,但我想提出的ID在一个div这样我就可以在显示它们网站,它不用于调试:)我需要当前的ID和最后一个ID来显示它们。而且我不会得到链接的id,因为getId只返回链接而不是相关的id。这里错误的命名sry – 2013-04-07 18:40:51
我不想显示getId()的输出,我想输出getId给我的链接的ID ..看看我顶部的XML文件。首先我需要读出链接的ID。 gedId应该命名为getVideoLink – 2013-04-07 19:00:54