0

我正在将标准 JavaScript 转换为 jQuery 以实现跨浏览器兼容性。我只想知道这将如何用 jQuery 编写?换句话说,我如何找到第一个元素?

var x = content.getElementsByTagName("title")[0].firstChild.data;

我尝试了以下方法:

var content = $.parseXML(zipEntry1.data);
content = $(content);
var x = content.find("title").first().val();

var content = $.parseXML(zipEntry1.data);
content = $(content);
var x = content.find("title")[0].val();

但这些都不起作用。正确的方法是什么?

编辑:

这是一些附加信息。我正在写一个 Epub 阅读器。我正在解析的文件是 Epub 规范中的 content.opf。这是一个摘录:

<metadata>
<dc:rights>Public domain in the USA.</dc:rights>
<dc:identifier id="id" opf:scheme="URI">http://www.gutenberg.org/ebooks/6130</dc:identifier>
<dc:contributor opf:file-as="Buckley, Theodore Alois" opf:role="ann">Theodore Alois Buckley</dc:contributor>
<dc:creator opf:file-as="Homer">Homer</dc:creator>
<dc:contributor opf:file-as="Pope, Alexander" opf:role="trl">Alexander Pope</dc:contributor>
<dc:title>The Iliad</dc:title>
<dc:language xsi:type="dcterms:RFC4646">en</dc:language>
<dc:subject>Classical literature</dc:subject>
<dc:subject>Epic poetry, Greek -- Translations into English</dc:subject>
<dc:subject>Achilles (Greek mythology) -- Poetry</dc:subject>
<dc:subject>Trojan War -- Poetry</dc:subject>
<dc:date opf:event="publication">2004-07-01</dc:date>
<dc:date opf:event="conversion">2012-10-31T19:41:56.338029+00:00</dc:date>
<dc:source>http://www.gutenberg.org/files/6130/6130-h/6130-h.html</dc:source>

我可以用这个获得作者和标题,但它只适用于 Chrome:

content.find('creator:first').text();
content.find('title:first').text();

版本适用于 Firefox 和 Chrome:

content.find("package").attr("version");

而且我还没有得到出版日期。这是我尝试过的:

 content.find('[event="publication"]').val();
4

3 回答 3

0

如果您需要获取第一个标题的文本内容,请使用:

$('title:first', content).text();

但是 Firefox 中的 jQuery 也需要指定命名空间:

var ff = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
$((ff ? 'dc\\:' : '') + 'title:first', content).text();

工作示例:http: //jsbin.com/enayex/5/edit

于 2013-04-10T20:17:13.563 回答
0

如果您知道元素类型,那么这很容易。让我们假设我们正在处理 div,然后这样做:

$('div').first().html("<p>I found you</p>");
于 2013-04-10T20:17:28.783 回答
0

像这样的东西?

var x = content.find('title:first').html()

或者

var x = content.find('title:first').text();
于 2013-04-10T20:12:11.520 回答