電子書籍の厳選無料作品が豊富!

みなさんこんばんわ。
早速ですが質問をお願いします。
<table>



<tr><td><a href = "・・・"><img src = "・・・" alt = "・・・"></a></td><td>テキスト</td></tr>
<tr><td><a href = "・・・"><img src = "・・・" alt = "・・・"></a></td><td>テキスト</td></tr>



</table>
こんなテーブルがあります。
<tr>で10行程度画像を立て並びで表示をさせているのですが、
中には取得に失敗して、代わりのaltのテキストが表示される行もあります。

そこで、imgタグでの画像の読み込みに失敗した場合、その行ごと消してしまいたいのですが
良い方法はないでしょうか?
アドバイスを頂ければ助かります。宜しくお願いします

A 回答 (5件)

imgにonerrorを付けるってとこまでは#1さんと同じです。


行ごと消す、を、その行を非表示、にしています。

<html>
<head>
<script type="text/javascript">
function sample(Img){
for(var TR=Img;TR&&TR.nodeName!='TR';TR=TR.parentNode);
if(TR)TR.style.display='none';
}
</script>
</head>
<body>
<table>
<tr><td><a href="・・・"><img src="・・・" alt="・・・" onerror="sample(this)"></a></td><td>テキスト</td></tr>
<tr><td><a href="・・・"><img src="・・・" alt="・・・" onerror="sample(this)"></a></td><td>テキスト</td></tr>
<tr><td><a href="・・・"><img src="・・・" alt="・・・" onerror="sample(this)"></a></td><td>テキスト</td></tr>
</table></body>
</html>

ところで・・・
>取得に失敗して、代わりのaltのテキストが表示される
ってのがまさにaltの役割りなんですけど非表示にしちゃっていいものでしょうか?
もし代替テキストでないんだとしたらaltは空にしてtitleに内容?を書いた方がいいかと思います。
→ <img src="・・・" alt="" title="・・・" onerror="sample(this)">
    • good
    • 0

ごめんなさい


<img>に altをかいていませんでした。
    • good
    • 0

もうひとつ


質問を・・・?
回答を・・・では?



node.onerror = null;
を、いれないと、さくじょしたのにえらーになります
それはなぜ?
    • good
    • 0

わ・・・×


は・・・○
    • good
    • 0

こういうのは?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">

<head>
 <meta http-equiv="Content-Script-Type" content="application/javascript">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>test</title>
</head>

<body>
<table summary="がぞうのいちらんひょうになります" border="1">
 <tr>
  <td>photo0</td>
  <td><a href="#"><img src="./img/01.gif" onError="delTR( this )"></a></td>
 </tr>
 <tr>
  <td>photo0</td>
  <td><a href="#"><img src="./img/1.gif" onError="delTR( this )"></a></td>
 </tr>
 <tr>
  <td>photo0</td>
  <td><a href="#"><img src="./img/2.gif" onError="delTR( this )"></a></td>
 </tr>
</table>

<script type="text/javascript"><!--

var delTR = (function ( getParent ) {
 return function ( node ) {
  var tr = getParent( node, 'nodeName', 'TR' );

  node.onerror = null;
  if( tr ) tr.parentNode.removeChild( tr );
 };
})(
  function ( node, type, val ) {
   return node ? ( val === node[ type ] ) ?
    node:
    arguments.callee( node.parentNode, type, val ):
    null;
  }
 );
//-->  
</script>
</body>
</html>
ぜんかく、くうはくは、はんかくになおしてね
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!