人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

以下のソースでtest_idが123だけで来た場合に
複数の場所の背景を設定したいのですが
どうしたらいいのでしょうか?

<table>
<tr><td ID=123>1</td><td ID=123>2</td></tr>
<tr><td>3</td><td>4</td></tr>
</table>

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

var test_id = getEntry();
var test_id_list = entryParser(test_id);

for (i in test_id_list){
var obj = document.getElementById(test_id_list[i]);
if (obj != null){
obj.style.backgroundColor="#FFCC66";
}
}

function linkExtend(_this){
if (test_id != ''){
_this.href += '&test_id=' + test_id;
}
}

function entryParser(){
var plainEntry = getEntry();
return entry.match(/(\d+)/g);
}

function getEntry(){
var url = document.URL;
if (url.match(/\/test_id\/([\d_]+)/)){
return RegExp.$1;
} else if (url.match(/[&|\?]test_id=([\d_]+)/)){
return RegExp.$1;
}
return '';
}

//-->

●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:href regexp URL ソース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● llusall
●35ポイント

こちらでいかがでしょうか?

以下、ソースより抜粋しています。


<html>

<body>

    <table id="tbl">

        <tr><td ID=123>1</td><td ID=123>2</td></tr>

        <tr><td>3</td><td>4</td></tr>

    </table>

</body>

<script type="text/JavaScript">

<!--

var test_id = getEntry();

var test_id_list = entryParser(test_id);

if (test_id_list.length==1 && test_id=="123"){

    // test_idが 123 だけで来た場合、テーブル全体の背景を設定

    document.all.tbl.style.backgroundColor="#FFCC66";

}else{

    for (i in test_id_list){

        var obj = document.getElementById(test_id_list[i]);

        if (obj != null){

            obj.style.backgroundColor="#FFCC66";

        }

    }

}

◎質問者からの返答

すいません。test_IDは固定ではありません。


2 ● tawazou
●35ポイント

的外れだったらごめんなさい。

document.getElementById(ID) で取得する際、IDが一意になっていないため、うまく取れていないのだと思います。

以下ではいかがでしょうか?


<html>

<body>

<table>

<tr>

    <td id=123>1</td>

    <td id=123>2</td>

  </tr>

  <tr>

    <td>3</td>

    <td>4</td>

  </tr>

</table>

<script>

// TDエレメントを全て取得

var objTds = document.getElementsByTagName("td");

// 対象のID値を取得

var targetId = getXX();

// 全TDエレメント繰り返し

for (i = 0; i < objTds.length; i++) {

  objTd = objTds[i];

  // ID属性が対象のIDの場合、背景を設定

  if (objTd.id == targetId) {

    objTd.style.backgroundColor = "#FFCC66";

  }

}

// 対象のID値を取得

function getXX(){

  // 実際はURLから取得???

  return "123";

}

</script>

</body>

</html>

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ