• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jquery xmlのlinkが空の<a>タグ)

jquery xmlのlinkが空の<a>タグ

mikemike7の回答

  • ベストアンサー
  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

同じ環境で試してみましたが、 FireFox、IEともにlinkなしの場合は正常に判定されました。 なんでだろうと思っていろいろ弄ってたんですが、 もしや、空と思っているlinkに半角スペースとかタブは入ってませんか? <link> </link> とした場合、 IE : リンクなし FF : リンクあり となりました。 if(url == ""){ の部分を if(url.indexOf("http") !== 0){ に変えたらどうなりますか?

wonder_mm
質問者

お礼

すばらしいです! 解決しました。 RSS2.0仕様のフィードを作成できるフリーのHisotryEditorを使用しましたが、3件ほど何も入力せずともタブが入っていたようです。 (xmlでは、縦に表示されています。) <link> </link> mikemike7様 ありがとうございました。

関連するQ&A

  • jqueryでRSS内のdc:dateなどの要素の取得方法

    jqueryを使用してRSSのdc:dateやdc:subjectなどの要素を取得するにはどうしたらよいでしょうか。 現在以下のようなコードにしていまして、なんとなく取得したRSSの最初に書いてあるxmlns:dc="http://purl.org/dc/elements/1.1/" となってる部分を利用すればいいのかなと思い立ち、children関数などを使ってみましたが取得できませんでした。 $.ajax({ url: settings.xmllocation, async: true, cache: false, dataType: "xml", success: function(xml) { $(xml).find('item').each(function() { var title = $(this).find('title').text(); var url = $(this).find('link').text(); var date = $(this).children('http://purl.org/dc/elements/1.1/').find('dc:date').text(); var element = $('<div><a href="' + url + '">' + title + '('+date+')</a></div>'); $(container).append(element); elements.push(element); }); });

  • jqueryにてrssを取得して表示

    初心者です。 下記コードで指定した情報を得て表示させることができるのですが、url部分を書き換え、rssを見に行かせると表示されなくなります。 ただし、ローカルの環境(MacOSX)でsafariで表示させた時には表示されます。 (しかし、safariでもサーバにアップすると表示されません) どの環境でも表示させたいのですが、どうすればいいでしょうか? どなたか詳しい方、ご教示ください。よろしくお願いいたします。 (一部ダミーの日本語に置き換えて説明しています) url: 'ファイル名.xml',  → 表示OK   url: 'http://feedblog.ameba.jp/rss/ameblo/フォルダ名/rss20.xml',   → ローカル環境でsafariのみOK ---ここから <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>sample3</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $.ajax({ url: 'ファイル名.xml', dataType: 'xml', success : function(data){ $("item",data).each(function(){ $("dl").append("<dt><a href='"+$("link",this).text()+"'>"+$("title",this).text()+"</a></dt><dd>"+$("description",this).text()+"</dd>"); }); } }); }); </script> </head> <body> <dl></dl> </body> </html>

  • 外部のxmlデータを呼び込むproxy.php

    はじめまして。 サイト内に外部のブログのxmlデータ(rss)をjFeedを使用して表示したいと 思い設定しておりますが苦戦しております。 あるサイトで外部のxmlデータを呼び込む際には、直接呼び込めないためproxy.phpを 介して設定するように書かれているのを参考に設定しているのですが。 うまくいきません。 html側の記述 <script type="text/javascript"> $(function(){ $.getFeed({ url:'proxy.php', ←ココの部分で表示したいブログのアドレス(url:'http://rssblog.ameba.jp/one78/rss20.xml')にするとサーバーのプレビューでは確認出来ますが、サーバーにアップしたとたん表示されません。 success: function(feed){ $('#myfeed').append('<h2><a href="'+feed.link+'">'+feed.title+'</a></h2>'); var s=""; for(var i=0; i<feed.items.length && i<10; i++){ var item=feed.items[i]; s+= '<dt id="updated">' + dateChanger(item.updated) + '</dt>'; //更新時間 s+='<dd><a href="'+item.link+'">'+item.title+'</a></dd>'; } $('#myfeed').append(s); } }); var dateChanger = function(str){ var mydate = new Date(str); yy = mydate.getFullYear(); mm = mydate.getMonth() + 1; dd = mydate.getDate(); if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } datestr = yy + "." + mm + "/" + dd + ""; return datestr; }; }); --> </script> proxy.php側の記述 <?php header('Content-type: application/xml'); $handle = fopen('http://rssblog.ameba.jp/one78/rss20.xml', "r"); ←この表記であっているのか不安です。 if ($handle) { while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose($handle); } ?> proxy.phpは上記のhtmlと同じディレクトリに格納しております。 以上、アドバイスお願いいただけたらと思います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • ajaxにより取得したxmlデータの加工について

    ajax通信でRSSのxmlデータを取得し、一部のタグを抽出してhtml上にリンク一覧を作りたく、以下のような処理をテストで作りました。 $(function() { $.ajax({ url: '取得対象のxmlファイルパス', type: 'GET', success: function(data) { //var json = $.xml2json(data); $(data)find('title').each(function(){ console.log($(this).text()); }); } }); }); コンソールにはすべて空データしか確認できないのですが、取得したdataを変換等する必要がありますでしょうか。

  • RSS 日付の取得方法

    見てくださった方、こんにちは。 php超初心者のkitakaruと申します。 ホームページを作っていて、 RSSを取得して表示させたいのですが、 それが出来ずにほとほと困っています。 htmlやcssは多少分かるのですが、 phpは全くといっていいほど分かりません。 どなたか詳しい方がいらしゃいましたら、 ご教示頂けますでしょうか。 よろしくお願い致します。 呼び出しているxmlの形式はrss2.0です。 http://i-njoy.net/tips/rss.shtml こちらのサイトを参考に 以下のようソースを書きました。 (1)のpubdateというタグの値を引っ張ってこれず そこで行き詰ってしまっています。 ちなみにタイトルなどはきちんと表示されています。 分かる方、どうぞよろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://www.xxxxxxxxxxxxx/index.xml?mode=rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; $date1 = htmlspecialchars($item['pubdate']);  //(1)rss 出力日時を取得して 変数data1に代入 $date2 = date("Y.m.d", strtotime($date1));   //(2)表示形式変換 data1を変換したものを変数data2に代入 //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; echo '<li><dl><dt>'.$date1.'</dt><dd><a href="'.$url.'">'.$title.'</a></dd></dl></li>'; //(3)変数data2を出力 } ?>

    • ベストアンサー
    • PHP
  • 【jQuery】jQuery Masonry

    この度jQueryで壁にぶつかり、質問させて頂きます。 現在開発中のWEBサービスにて、jQuery Masonryとアコーディオン機能を組み合わせたページを構築する流れとなっております。 画面イメージとしては・・ Pinterestにアコーディオン機能が付いており、各帯をクリックする毎に内容が表示される機能です。 【Point】横幅は制限がありますが、縦幅には制限が無く、アコーディオンが開閉する毎にグリッド部分の再構築(ムーブアクション)を行いたいのですが、それが上手くいきません。 参考サイト:http://goo.gl/QLQI7 実際のソース(抜粋): <script> jQuery(function(){ var $container = $('#container'); $container.imagesLoaded( function(){ jQuery('#container').masonry({ itemSelector: '.item', isAnimated:true }); }); }); </script> <script> jQuery(function () { jQuery("dd").css("display","none"); jQuery("dl dt").click(function(){ var cont = jQuery(this).next(); if(jQuery(cont).css("display")=="none"){ jQuery("dd").slideUp("slow"); jQuery(cont).slideDown("fast"); jQuery("dt").removeClass("select"); jQuery(this).addClass("select"); } }).hover( function(){jQuery(this).addClass("over");} ),( function(){jQuery(this).removeClass("over");} ); }); </script> <div id="container"> ~ここから~ <div class="item"> <dl> <dt>タイトル1</dt> <dd>本文1</dd> <dt>タイトル2</dt> <dd>本文2</dd> <dt>タイトル3</dt> <dd>本文3</dd> </dl> </div> </div> ~ここまでがLoopで複数のデータが表示される~ なお、jQuery初心者でして具体的な構文までをサポート頂けますと幸いです。 よろしくお願い致します。

    • ベストアンサー
    • CSS
  • JQueryで$("dt span")クリック動作

    JQueryで$("dt span")をクリックしたときに 隣接するddタグの部分を表示させるには以下の記述を どのように修正すればよいのでしょうか? <html> <head> <style type="text/css"> dl { margin-bottom: 20px; } dd { display: none; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $("dt span").click(function(){ $("+dd",this).slideToggle(); }); }); </script> </head> <body> <dl> <dt>toggle<span>開く</span></dt> <dd>テキストが入ります。</dd> </dl> <dl> <dt>toggle<span>開く</span></dt> <dd>テキストが入ります。</dd> </dl> </body> </html> ご存じの方がおられましたらご回答をよろしくお願いします。

  • タグ リストについての質問です。(超初心者です)

    タグ リストについての質問です。(超初心者です) リストについてなのですが、複数のリストに複数のスタイルを設定したいのですができません。 何が悪いのか教えて下さい。また解決方法も教えて下さい。 ホームページ作成の初心者です。悪戦苦闘しながら作成しています。 タグについてyahoo知恵袋や教えて!gooなどたくさん調べたつもりなのですが、分かりません・・・ 教えて下さい。 複数のリストに各々スタイルを指定したいのですが、2つめのリストに反映されません。 スタイルシートで作成しているのですが・・・ どのようにしたら良いのでしょうか? == HTMLは、下記のような形 == <div id="main"> ・ ・ ・ <div id="navigation"> <dl id="navi"> <dt>野菜の種類</dt> <dd><a href="#">キャベツ</a></dd> <dd><a href="#">にんじん</a></dd> </dl> <dl id="navi2"> <dt>車の種類</dt> <dd><a href="#">セダン</a></dd> <dd><a href="#">ワゴン</a></dd> </dl> </div> ・ ・ ・ </div> == CSSは、下記のような形 == #navigation dl#navi { background: #999999; } #navigation dl#navi dt { margin: 0 0 1px; } #navigation dl#navi dd { background: url(bg_01.png) no-repeat; } #navigation dl#navi dd.first { padding-top: 14px; background-position: 0 -1px; } #navigation dl#navi dd a { color: #000000; text-decoration: none } #navigation dl#navi dd a:hover { color: #A6FF28; } #navigation dl#navi2 { background: #FFFF66; } #navigation dl#navi2 dt { margin: 0 0 1px; } #navigation dl#navi2 dd { background: url(bg_01.png) no-repeat; } #navigation dl#navi2 dd.first { padding-top: 14px; background-position: 0 -1px; } #navigation dl#navi2 dd a { color: #000000; text-decoration: none } #navigation dl#navi2 dd a:hover { color: #CC0033; } 上記のような形で、<dl id="navi2">のスタイルが適用されません・・・ なぜでしょうか? ちなみに<dl id="navi">はちゃんと反映します。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 自分のHPにRSSを表示させたい

    試しに、h●●p://www.okinawainfo.net/rss10.xmlを表示させたく htdocs内のrss.phpファイルに <dl> <?php $rss = simplexml_load_file("h●●p://www.okinawainfo.net/rss10.xml"); $i = 0; foreach ($rss->channel->item as $item) { if( $i++ == 5 ) { break; } $link = $item->link; $title = $item->title; $date = date('Y.m.d', strtotime($item->pubDate)); $desc =$item->description; echo '<dt>' . $date . '</dt>'; echo '<dd><a href="' . $link . '" target="_blank">' . $title . '</a></dd>'; } ?> </dl> と、打ち込みました。 ですが、エラーが出ます。 エラーは… Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 localhost 2011/12/09 4:19:28 Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 ↑と出ます。 何故でしょうか><

  • クロスドメインについて

    jqueryのjquery.xdomainajax.jsを使ってhtmlとは違うサーバーに置いてあるxmlを読み込んで 処理をしたいのですが、うまくいきません。 どうすればいいのか教えていただければ幸いです。 ご回答よろしくお願いいたします。 したい処理の内容は、xmlに記載してあるデータを読み込んで その内容をhtmlに表示させることです。 読み込ませるxmlは↓下記のような内容です。 <?xml version="1.0" encoding="utf-8"?> <channel> <item>  <number>1234</number>  <title>タイトル</title> <pubdate>2009/2/29 0:00:00</pubdate> <link>http://xxxx/xxx.html</link> <description>文章</description> <category>abc</category> </item> </channel> 読み込ませる側のhtmlソースは↓下記の内容です。 scriptでxmlを読み込ませた後に div#article-contentにxmlの内容をタグで括って追加されるような処理をしているのですが、 クロスドメインでxmlを違うサーバーに置いてやるとうまくいきません。 タグの生成はされないのですが、 success : function(data)の alert("success"); は表示されます。 **************** html ******************* ******************** head *********************** <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript" src="https://github.com/jamespadolsey/jQuery-Plugins/raw/master/cross-domain-ajax/jquery.xdomainajax.js"></script> *********************** script ************************** $.ajax({ url: 'http://xxxx/xxxx.xml', type: 'GET', dataType: 'xml', success : function(data){ alert("success"); $("item",data).each(function(){ $("div#article-content").append("<div class='article-section all-display "+$("category",this).text()+"' id='"+$("number",this).text()+"'><dl class='article-list'><dt class='article-title'><a href='" +$("link",this).text()+"' target='_blank'>" +$("title",this).text()+"</a></dt><dd class='article-description'>" +$("description",this).text()+"</dd><dd class='article-date'>" +pubdateText+"</dd></dl></div>"); }); } }); *********************** body ************************** <div id="article-content"> <!-- /article-content --></div>