javascriptについての質問です。


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

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

名簿はこんな感じです

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/03/14 00:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:tukihatu No.1

回答回数180ベストアンサー獲得回数32

ポイント35pt
<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

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

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

id:freewriter

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

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

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

2008/03/07 18:23:42
id:Mars No.2

回答回数203ベストアンサー獲得回数20

ポイント35pt

名簿とやらの具体的な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/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません