Jquery 属性选择

发布于 2024-12-02 19:31:54 字数 1009 浏览 1 评论 0原文

我正在解析一个类似于这样的 xml

<title>abc</title>
<summary>abc</summary>
<content type='application/atom+xml' src='abc'/>
<link rel='alternate' type='application/atom+xml' href='abc'/>
<title>abc</title>
<summary>xyz</summary>
<content type='application/atom+xml' src='xyz'/>
<link rel='alternate' type='application/atom+xml' href='xyz'/>
<title>abc</title>
<summary>abb</summary>
<content type='application/atom+xml' src='abb'/>
<link rel='alternate' type='application/atom+xml' href='abb'/>

My jQuery:

$title.each(function(index)
  {
    if (index != 0) 
        {
          $("#container").append('<div id=' + index + '></div></br>');
      $('#' + index).text($(this).text());
      $srcnode = $(xml).find('content')[index];
      alert($srcnode.attr('src'));
    }
}

我收到错误,因为找不到该元素的 attr 'src' 。我正在尝试获取与内容中的标题相对应的链接

I am parsing an xml which looks like this

<title>abc</title>
<summary>abc</summary>
<content type='application/atom+xml' src='abc'/>
<link rel='alternate' type='application/atom+xml' href='abc'/>
<title>abc</title>
<summary>xyz</summary>
<content type='application/atom+xml' src='xyz'/>
<link rel='alternate' type='application/atom+xml' href='xyz'/>
<title>abc</title>
<summary>abb</summary>
<content type='application/atom+xml' src='abb'/>
<link rel='alternate' type='application/atom+xml' href='abb'/>

My jQuery:

$title.each(function(index)
  {
    if (index != 0) 
        {
          $("#container").append('<div id=' + index + '></div></br>');
      $('#' + index).text($(this).text());
      $srcnode = $(xml).find('content')[index];
      alert($srcnode.attr('src'));
    }
}

I am getting the error as no attr 'src' found for the element. I am trying to fetch the link corresponding to the title which is in content

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

倾城泪 2024-12-09 19:31:54

尝试更改

  $srcnode = $(xml).find('content')[index];

  $srcnode = $(xml).find('content').eq(index);

(+ 你没有“xml”变量。) 更正后,
那么它应该可以正常工作

try to change

  $srcnode = $(xml).find('content')[index];

to

  $srcnode = $(xml).find('content').eq(index);

(+ you have no "xml" variable.) After you correct it,
it should work correctly then

時窥 2024-12-09 19:31:54

Change

$srcnode = $(xml).find('content')[index];

To

$srcnode = $(xml).find('content').eq(index);

attr 是一个 jQuery 方法,当您 $(xml).find('content')[index] 时,它会给您 xml 节点。 jQuery 有 eq 方法,它接受一个整数作为参数,并从匹配的元素集中返回该索引处的元素。

Change

$srcnode = $(xml).find('content')[index];

To

$srcnode = $(xml).find('content').eq(index);

attr is a jQuery method, when you $(xml).find('content')[index] it will give you the xml node. jQuery has eq method which takes an integer as parameter and returns the element at that index from the matched sets of elements.

小霸王臭丫头 2024-12-09 19:31:54

除了 [] 为您提供 DOM 节点而不是 jQuery 包装器之外,您还有两个进一步的问题:

$(xml)

$() 是解析 HTML 并从中创建节点的快捷方式。但您的内容不是 HTML,而是 XML,如果您尝试将其解析为 HTML,您将会迷惑浏览器(尤其是 IE)。使用 $.parseXML() 解析 XML。

'<div id=' + index + '></div></br>'

避免使用纯数字的 id,它们无效并且可能会迷惑浏览器。无论如何,您不需要查找 id,只需使用对已有节点的引用即可,例如 $('

', {文本:$(this).text()}).appendTo('#container');

In addition to [] giving you a DOM Node rather than a jQuery wrapper, you have two further issues:

$(xml)

$() is a shortcut to parse HTML and create nodes from it. But your content is not HTML, it's XML, and if you try to parse it as HTML you're going to confuse the browser (especially if it's IE). Use $.parseXML() to parse XML.

'<div id=' + index + '></div></br>'

Avoid purely-numeric ids, they are not valid and can confuse browsers. You don't need to look up an id anyway, you can just use the reference to the node you've already got, eg $('<div/>', {text: $(this).text()}).appendTo('#container');.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文