为什么我得到空白而不是版本和日期?

时间:2014-06-08 21:36:54

标签: javascript jquery xml xhtml

我有这个XML文件(部分),我需要获取版本并使用jQuery修改日期。

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf"
     version="3.0"
     xml:lang="nl"
     unique-identifier="isbn-id"
     prefix="cc: http://creativecommons.org/ns# rendition: http://www.idpf.org/vocab/rendition/# ibooks: http://vocabulary.itunes.apple.com/rdf/ibooks/vocabulary-extensions-1.0/">
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
        <meta refines="#title" property="title-type">main</meta>
        <meta property="ibooks:version">1.0.440</meta>
        <meta property="dcterms:modified">2014-06-08T21:15:17Z</meta>
...

这是从上面的XML文件中读取版本和日期的javascript / jQuery函数:

$(document).ready(function(){

$.ajax({
type: "GET",
url: "package.opf",
dataType: "xml",
success: function(xml) {
    var opf = $.parseXML( xml );

    $("span#datum").html($(opf).find("meta[property='dcterms:modified']").text());
$("span#versie").html($(opf).find("meta[property='ibooks:version']").text());
  },
error: function(jqHXR, textStatus, errorThrown) {
    console.log(jqHXR);
    console.log(textStatus);
    console.log(errorThrown);}     
});
});

将版本和日期放在现有的XHTML文件中,其中一部分是:

 <p style="margin: 2em;" class="noind">Versie: <span id="versie">1.0.497</span>
 <br />Datum: <span id="datum">2014-06-05T22:15:50Z</span>

然而:我得到了空白。版本和日期被空格覆盖。 怎么可能?

是的,我找到了。但是像这样:

$(document).ready(function(){
   $.get ('package.opf', function(xml) {
      $("span#datum").html($(xml).find("meta[property='dcterms\\:modified']").text());
      $("span#versie").html($(xml).find("meta[property='ibooks\\:version']").text());
    });
 });

其中.opf文件与包含javascript的xhtml文件位于同一目录中。 但我认为这不适用于iBooks中的EPUB3书籍,因为在那里,我认为没有变化。

1 个答案:

答案 0 :(得分:0)

这是jQ对XML节点和处理器的处理。属性中带冒号的属性;你需要逃避它们:

$("span#datum").html($(opf).find("meta[property='dcterms\\:modified']").text());
$("span#versie").html($(opf).find("meta[property='ibooks\\:version']").text());

修改

更新以添加jsFiddle:http://jsfiddle.net/7cu7g/