質問

私はこのように見える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'/>

私の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」が見つかっていないため、エラーが発生しています。コンテンツにあるタイトルに対応するリンクを取得しようとしています

役に立ちましたか?

解決

変更してみてください

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

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

(+「xml」変数はありません。)修正した後、正しく動作するはずです

他のヒント

変化する

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

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

attr あなたがjQueryメソッドです $(xml).find('content')[index] XMLノードが得られます。 jqueryは持っています eq 整数をパラメーターとして取得し、一致した要素セットからそのインデックスの要素を返す方法。

に加えて [] jQueryラッパーではなくDOMノードを提供すると、さらに2つの問題があります。

$(xml)

$() HTMLを解析し、そこからノードを作成するショートカットです。しかし、あなたのコンテンツはhtmlではなく、xmlであり、HTMLとして解析しようとすると、ブラウザを混同します(特にIEの場合)。使用する $.parseXML() XMLを解析します。

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

純粋に数字を避けてください idS、それらは有効ではなく、ブラウザを混乱させることができます。調べる必要はありません id とにかく、あなたはすでに持っているノードへの参照を使用することができます、例: $('<div/>', {text: $(this).text()}).appendTo('#container');.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top