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

javascriptについての質問です。

氏名を渡すと姓だけ帰ってくる外部JSファイルがあるとします。
myouji("山田太郎")って渡すと、山田を帰してくれるわけです。

ここに名簿のhtmlがあります。
この外部JSファイルを使って、全ての指名の隣に苗字を表示させるには
名簿のhtmlファイル上でどうすればよいでしょうか?

名簿はこんな感じです

山田太郎
山田花子
はてな次郎
ヤフー三郎


●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:HTML JavaScript js はてな ファイル
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 牛乳先生(tukihatu)
●35ポイント
<html>
<head>
</head>
<body>
<script>
entry=new Array(
"山田太郎",
"山田花子",
"はてな次郎",
"ヤフー三郎"
);

for(var i in entry){
document.write("苗字:"myouji(entry[i]) +" " +entry[i]);
}
</script>
</body>
</html>

http://www.tohoho-web.com/js/statement.htm#for2

変数に文字を登録して出力。

質問の内容的にはこういうことなんだろうけど、質問者の意図は違う気がするが。

◎質問者からの返答

ありがとうございます。ご指摘の通り意図があります。

HTML上の任意の箇所にちょこちょこと書くと、その箇所にJSの動作結果が出るようにしたいのです。

わかりづらくてすいません。。


2 ● Mars
●35ポイント

名簿とやらの具体的なHTMLとかわからない以上、

具体的なソースも書けないので、

・名前にはclass="hoge"を付ける。

・名前の後ろに苗字を付ける

という勝手なルールでサンプルを書いて見ましたので利用できるようならこちらを応用してみてください。

<html>
<head>
<title></title>
<script type="text/javascript">
function myouji(seiMei){
return seiMei.substring(0,2);
}
window.onload=function(){
var setFamilyName = function(oo){
for(var o=oo.firstChild;o;o=o.nextSibling) {
if(o.className && o.className == 'hoge') {
o.appendChild(document.createTextNode(
'(' + myouji(o.firstChild.nodeValue) + ')'
));
}
if(o.firstChild) setFamilyName(o);
}
}
setFamilyName(document.body);
}
</script>
</head>
<body>

<p>
<strong class="hoge">山田太郎</strong>君と<strong class="hoge">山田花子</strong>さん、
それに<strong class="hoge">はてな次郎</strong>氏と<strong class="hoge">ヤフー三郎</strong>殿は知り合いです。
</p>

</body>
</html>

やや手抜きなのでもしかしたら上手くいかないケースがあるかもしれない。

http://q.hatena.ne.jp/

関連質問


●質問をもっと探す●



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