+ JavaScript の質問用スレッド vol.57 +

このエントリーをはてなブックマークに追加
915Name_Not_Found:2007/07/18(水) 08:08:46 ID:???
>>911
HTMLにリストボックスというのは存在しないんで。
select要素のことかな。その場合、select要素の
selectedIndexプロパティに「何番目が選ばれているか」
が入っているからそれを参照して対応するものを設定すれば
いいんじゃないの。この説明で分からないなら自分で勉強すれ。
916Name_Not_Found:2007/07/18(水) 12:59:06 ID:efCQihIP
チェックされているチェックボックス数をカウントしています。
トリガーは、チェックする動作です。

一括チェックを何カ所かに利用しています。
一括チェックのチェックボックスをカウントから外したいのですが、
一カ所だけどうしてもうまくいきません。

全てにチェックをした場合に、6になるようにしたいのですが・・・。

以下にアップしました。
ttp://a-draw.com/contents/uploader2/src/up0167.zip.html
pass:checkです。

よろしくお願いします。
917916:2007/07/18(水) 13:00:13 ID:???
補足です。

「全てにチェック」を選択した場合に、6項目選択していることにしたいという意味です。
918916:2007/07/18(水) 14:03:43 ID:???
ミスに気づきました。削除します。
919891:2007/07/18(水) 14:10:57 ID:???
今頃自己解決しました。
動かなかったのは大学でWIn、自宅でLinuxで書いてたことが原因で
ファイルの文字コードが違っていたことが原因だったようです…。
スクリプトそのものに問題があると思い込んでいたため盲点で気付かなかった…。

>>895
ごめんね、スクリプトの動作確認はしたんだけど、
そういうレベルじゃない問題だった。
920Name_Not_Found:2007/07/18(水) 14:32:15 ID:K8NubW3R
getElementsByTagName(tag1)とgetElementsByTagName(tag2)で
取得したそれぞれのノードリストを連結するにはどうすればいいですか?
921Name_Not_Found:2007/07/18(水) 15:15:33 ID:???
>>920
連結はできない。配列を別に用意して両方から順次内容を
コピーしてきてくるとかじゃないの。
922Name_Not_Found:2007/07/18(水) 16:08:35 ID:???
>>920
concat
923920:2007/07/18(水) 16:23:47 ID:???
>>921
やはり無理ですか…

>>922
エラーが出ます

具体的にはロールオーバーのscriptで、imgタグ以外にinputにも
対応させたいだけなんです。

function initRollovers() {
if (!document.getElementById) return
var aPreLoad = new Array();
var sTempSrc;
var aImages = document.getElementsByTagName('img');
for (var i = 0; i < aImages.length; i++) {
if (aImages[i].className == 'rollover') {
var src = aImages[i].getAttribute('src');
var ftype = src.substring(src.lastIndexOf('.'), src.length);
var hsrc = src.replace(ftype, '_on'+ftype);

//snip//

何とかシンプルに実装できないでしょうか?
924Name_Not_Found:2007/07/18(水) 17:28:20 ID:???
>>923
Geckoのみ、つまりIEで動かなくていいのなら、XPathで
「imgまたはinput type="image"」というずばりな指定で検索できるけどね。
925Name_Not_Found:2007/07/18(水) 17:30:26 ID:???
>>920
tag = Array.prototype.slice.call( document.getElementsByTagName( tagname ) );
としてオブジェクトでなく配列で受け取れば連結できるよ
926Name_Not_Found:2007/07/18(水) 17:45:27 ID:???
>>925
おおすごい技だ。知らなかった。どこに載ってるの?
927Name_Not_Found:2007/07/18(水) 18:03:56 ID:???
<form name="frmTest">
<input type="hidden" name="myItem[]" value="1">
<input type="hidden" name="myItem[]" value="2">
<input type="hidden" name="myItem[]" value="3">
・・・

と記述できると思うんですが、下記のように書いてもアクセス出来ません

alert(document.frmTest.myItem.length);

俺は何をどう勘違いしてるんでしょうか・・・
928Name_Not_Found:2007/07/18(水) 18:40:14 ID:???
>>927
'myItem' って名前の要素はないでしょ
>>3 の Q8
929Name_Not_Found:2007/07/18(水) 18:40:52 ID:YM+T9swA
function google(){
document.body.innerHTML=document.body.innerHTML.replace(/<b>([^|<|>|&|a-z|A-Z|0-9|\?|\!|_].*?)<\/b>/,'<b><a href="http://www.google.com/search?hl=ja&q=$1">$1</a></b>');
}
window.onload=function(){google();}

太字部分にGoogle検索リンクをはりたいのですがうまくいきません
どうすればいいでしょうか?
930Name_Not_Found:2007/07/18(水) 18:50:04 ID:???
自分だったら
document.getElementsByTagName('b')
をぶん回す
931Name_Not_Found:2007/07/18(水) 19:09:38 ID:???
>>928
ありがとうございます。しかしよくわかりません
>>927の書き方でPOSTで送信してみるとmyItemの配列として受け取れます。
(phpであれば、「$_POST["myItem"][0]」みたいに)

<input type="hidden" name="myItem" value="1">

こうすると

document.frmTest.myItem.value

でアクセス出来ました。(Q8では出来ないことになっている?)

「myItem01」のように連番つければ回避は出来そうなのですが今一ふにおちません・・・
932Name_Not_Found:2007/07/18(水) 19:20:50 ID:???
>>931
だからPHP用にnameに[]の入った名前を使ってしまうとJavaScript側では
documnent.forms.frmTest.elements['myItem[]'].length
のような書き方にしないとできないんだってば。過去スレにも
何回か出てる質問だと思うぞ!!
933Name_Not_Found:2007/07/18(水) 20:34:49 ID:XZta0cj4
JSからブラウザのオンライン・オフラインを切り替え事は可能でしょうか?
VBS、WSHを使用しても構いません。よろしくお願いします。
934Name_Not_Found:2007/07/18(水) 20:36:00 ID:???
>>931
myItem で探して myItem[] を拾ってくれたら逆に困るでしょ

[] 付きのを配列に格納するのは
php がそういう風に作られてるからであって
JavaScript とは関係のない話
935Name_Not_Found:2007/07/18(水) 20:49:06 ID:???
>>933
WSHとかならWSHスレへ。通常のJavaScriptでは無理でしょ。
936Name_Not_Found:2007/07/18(水) 21:05:07 ID:???
やっぱりJSでは無理ですか…
WSHスレに行ってきます。ありがとうございました。
937929:2007/07/18(水) 21:35:40 ID:YM+T9swA
>>930
ありがとうございます。
ぶん回すというのはどういう事でしょうか?
938Name_Not_Found:2007/07/18(水) 21:41:17 ID:???
>>933
どっちでも無理。プラウザからアクセス手段があれば可能。
現状ではぷにると改造Fxくらいじゃない?
939Name_Not_Found:2007/07/18(水) 21:51:02 ID:???
>>937
単純に置換してしまうといろいろ怪しそうだから
b 要素を拾い出して for 文でそれぞれに処理をすると言う意味

DOM のごくごく基本だからもうちょっとどこかで勉強しておいで
940Name_Not_Found:2007/07/18(水) 22:08:35 ID:???
bを180度回転するとqになるだろ。それでまた180度回転するとbだな。
だからbqbqbqbq… <<ぶん回す
941933:2007/07/18(水) 22:13:39 ID:???
>>938
わかりました、残念ですが諦めます。ありがとうございました。
942Name_Not_Found:2007/07/19(木) 07:43:36 ID:???
<table><tr><td>こんにちは</td></tr></table>
これで画面には「こんにちは」と表示されますが、その「こんにちは」をクリックするとそこが「こんにちは」が入力されたテキストボックスに変わる…ということをしたいと思います。

調べたところ、「こんにちは」が表示されているセルとは別の場所にhideenのテキストボックスを用意しておき、「こんにちは」がonclickになったときに「こんにちは」を非表示しテキストボックスを表示にする、というものしか見つかりませんでした。

最初にあげた目的のような、クリックした箇所自体をテキストからテキストボックスに変化させる(または一見そうなったように見せる)というのは、不可能でしょうか。
943Name_Not_Found:2007/07/19(木) 08:23:29 ID:???
>>942
???自分で答えを書いてないか?
944Name_Not_Found:2007/07/19(木) 09:09:13 ID:???
tableの中で置き換えたいなら、tdのinnerHTMLを書き換えるか、
displayをnoneにしたtdを隣接して置いて、onclickでblockにすればいいと思います。
945Name_Not_Found:2007/07/19(木) 09:10:34 ID:???
>>942
両者を隣接させておきvisibility:hiddenとvisibleを使う変わりに
display:noneとinlineを切替えるようにすれば「同じ場所で」
入れ替わるようにできるんでは。
946942:2007/07/19(木) 09:13:39 ID:???
>>943
いえ、942の方法だと「こんにちは」の場所とテキストボックスが表示される位置が別なんです。
触ったところがそのままテキストからテキストボックスに変わってほしいのですが・・・
947942:2007/07/19(木) 09:17:45 ID:???
>>944-945
アドバイスありがとうございます。
displayを使って試行錯誤してみます。
948944:2007/07/19(木) 09:32:19 ID:???
tdの中でinlineとnoneを切り替えたほうがよいみたいです。
tdのdisplayを変えるとレイアウトがずれることがあるようなので。
949Name_Not_Found:2007/07/19(木) 09:42:06 ID:???
次スレは975超えたら。
A10はdocument.defaultView.getComputedStyleだけでいいよね。
950Name_Not_Found:2007/07/19(木) 11:00:46 ID:GLV5BvLn
にこにこ動画みたいに、動画の上に文字を表示するのってどうやるんですか?
ヒントだけ頂ければ自分で調べます
951Name_Not_Found:2007/07/19(木) 12:01:47 ID:???
>>950
position absolute
952Name_Not_Found:2007/07/19(木) 12:04:46 ID:GLV5BvLn
それも考えたのですが、javascriptだけではできませんか?
CSSを使わないとできないのでしょうか??
953Name_Not_Found:2007/07/19(木) 12:10:32 ID:???
zIndex
954Name_Not_Found:2007/07/19(木) 12:22:01 ID:???
>>952
JavaScriptでCSSのほぼすべてのプロパティは実行時に設定できる。
逆に言えばCSSのプロパティを設定する以外の方法ではできないね。
あとは自分で勉強すれば。過去スレに山のように例があるだろ。
955Name_Not_Found:2007/07/19(木) 13:06:55 ID:???
よくわからんけど、CSSを使わないJavaScriptって何だ?DOM操作だけ?
956Name_Not_Found:2007/07/19(木) 13:51:32 ID:???
>>955
いくらでもあるでしょ。フォームのチェックでも画像の差し替えでも
ローカルな計算でもドキュメントの変更でもinnerHTMLの書き換えでも。
957Name_Not_Found:2007/07/19(木) 14:01:34 ID:???
>>950
あれflashだから
958Name_Not_Found:2007/07/19(木) 14:04:44 ID:???
e~~~~~~~~~~~
959Name_Not_Found:2007/07/19(木) 19:30:17 ID:???
Opera9でimgタグのsrcを書き換えても画像が更新されないことがあるんだけど、対処法ない?
Operaを最小化してから元に戻すと更新されるんだけど、リアルタイムに切り替えたい。
960Name_Not_Found:2007/07/19(木) 19:34:28 ID:???
javascriptの変数の値をphpの変数に代入するにはどうすれば良いのですか?
961Name_Not_Found:2007/07/19(木) 19:59:43 ID:???
>>959
上に全体を被うdivでも出してから消してみるとか?
>>960
あんたねえ、このスレくらい一通り読んでからこい! >>439-441 とか。
962Name_Not_Found:2007/07/19(木) 20:09:45 ID:iHHyVM0w
よろしくお願いします。
var kyo=new Date();
kyo="2007/10/19"
alert(kyo.getDate)
日付の日にちがでません。どこも悪くないとおもうのですが、
何かまちがっているでしょうか。
963Name_Not_Found:2007/07/19(木) 20:12:12 ID:???
なにで確認した?IE?firefox?
964Name_Not_Found
>>961
まじすいませんでした…orz