+ JavaScript の質問用スレッド vol.57 +
>>911 HTMLにリストボックスというのは存在しないんで。
select要素のことかな。その場合、select要素の
selectedIndexプロパティに「何番目が選ばれているか」
が入っているからそれを参照して対応するものを設定すれば
いいんじゃないの。この説明で分からないなら自分で勉強すれ。
916 :
Name_Not_Found:2007/07/18(水) 12:59:06 ID:efCQihIP
917 :
916:2007/07/18(水) 13:00:13 ID:???
補足です。
「全てにチェック」を選択した場合に、6項目選択していることにしたいという意味です。
918 :
916:2007/07/18(水) 14:03:43 ID:???
ミスに気づきました。削除します。
919 :
891:2007/07/18(水) 14:10:57 ID:???
今頃自己解決しました。
動かなかったのは大学でWIn、自宅でLinuxで書いてたことが原因で
ファイルの文字コードが違っていたことが原因だったようです…。
スクリプトそのものに問題があると思い込んでいたため盲点で気付かなかった…。
>>895 ごめんね、スクリプトの動作確認はしたんだけど、
そういうレベルじゃない問題だった。
920 :
Name_Not_Found:2007/07/18(水) 14:32:15 ID:K8NubW3R
getElementsByTagName(tag1)とgetElementsByTagName(tag2)で
取得したそれぞれのノードリストを連結するにはどうすればいいですか?
>>920 連結はできない。配列を別に用意して両方から順次内容を
コピーしてきてくるとかじゃないの。
923 :
920: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//
何とかシンプルに実装できないでしょうか?
>>923 Geckoのみ、つまりIEで動かなくていいのなら、XPathで
「imgまたはinput type="image"」というずばりな指定で検索できるけどね。
>>920 tag = Array.prototype.slice.call( document.getElementsByTagName( tagname ) );
としてオブジェクトでなく配列で受け取れば連結できるよ
>>925 おおすごい技だ。知らなかった。どこに載ってるの?
<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);
俺は何をどう勘違いしてるんでしょうか・・・
929 :
Name_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検索リンクをはりたいのですがうまくいきません
どうすればいいでしょうか?
自分だったら
document.getElementsByTagName('b')
をぶん回す
>>928 ありがとうございます。しかしよくわかりません
>>927の書き方でPOSTで送信してみるとmyItemの配列として受け取れます。
(phpであれば、「$_POST["myItem"][0]」みたいに)
<input type="hidden" name="myItem" value="1">
こうすると
document.frmTest.myItem.value
でアクセス出来ました。(Q8では出来ないことになっている?)
「myItem01」のように連番つければ回避は出来そうなのですが今一ふにおちません・・・
>>931 だからPHP用にnameに[]の入った名前を使ってしまうとJavaScript側では
documnent.forms.frmTest.elements['myItem[]'].length
のような書き方にしないとできないんだってば。過去スレにも
何回か出てる質問だと思うぞ!!
933 :
Name_Not_Found:2007/07/18(水) 20:34:49 ID:XZta0cj4
JSからブラウザのオンライン・オフラインを切り替え事は可能でしょうか?
VBS、WSHを使用しても構いません。よろしくお願いします。
>>931 myItem で探して myItem[] を拾ってくれたら逆に困るでしょ
[] 付きのを配列に格納するのは
php がそういう風に作られてるからであって
JavaScript とは関係のない話
>>933 WSHとかならWSHスレへ。通常のJavaScriptでは無理でしょ。
やっぱりJSでは無理ですか…
WSHスレに行ってきます。ありがとうございました。
937 :
929:2007/07/18(水) 21:35:40 ID:YM+T9swA
>>930 ありがとうございます。
ぶん回すというのはどういう事でしょうか?
>>933 どっちでも無理。プラウザからアクセス手段があれば可能。
現状ではぷにると改造Fxくらいじゃない?
>>937 単純に置換してしまうといろいろ怪しそうだから
b 要素を拾い出して for 文でそれぞれに処理をすると言う意味
DOM のごくごく基本だからもうちょっとどこかで勉強しておいで
bを180度回転するとqになるだろ。それでまた180度回転するとbだな。
だからbqbqbqbq… <<ぶん回す
941 :
933:2007/07/18(水) 22:13:39 ID:???
>>938 わかりました、残念ですが諦めます。ありがとうございました。
<table><tr><td>こんにちは</td></tr></table>
これで画面には「こんにちは」と表示されますが、その「こんにちは」をクリックするとそこが「こんにちは」が入力されたテキストボックスに変わる…ということをしたいと思います。
調べたところ、「こんにちは」が表示されているセルとは別の場所にhideenのテキストボックスを用意しておき、「こんにちは」がonclickになったときに「こんにちは」を非表示しテキストボックスを表示にする、というものしか見つかりませんでした。
最初にあげた目的のような、クリックした箇所自体をテキストからテキストボックスに変化させる(または一見そうなったように見せる)というのは、不可能でしょうか。
tableの中で置き換えたいなら、tdのinnerHTMLを書き換えるか、
displayをnoneにしたtdを隣接して置いて、onclickでblockにすればいいと思います。
>>942 両者を隣接させておきvisibility:hiddenとvisibleを使う変わりに
display:noneとinlineを切替えるようにすれば「同じ場所で」
入れ替わるようにできるんでは。
946 :
942:2007/07/19(木) 09:13:39 ID:???
>>943 いえ、942の方法だと「こんにちは」の場所とテキストボックスが表示される位置が別なんです。
触ったところがそのままテキストからテキストボックスに変わってほしいのですが・・・
947 :
942:2007/07/19(木) 09:17:45 ID:???
>>944-945 アドバイスありがとうございます。
displayを使って試行錯誤してみます。
948 :
944:2007/07/19(木) 09:32:19 ID:???
tdの中でinlineとnoneを切り替えたほうがよいみたいです。
tdのdisplayを変えるとレイアウトがずれることがあるようなので。
次スレは975超えたら。
A10はdocument.defaultView.getComputedStyleだけでいいよね。
950 :
Name_Not_Found:2007/07/19(木) 11:00:46 ID:GLV5BvLn
にこにこ動画みたいに、動画の上に文字を表示するのってどうやるんですか?
ヒントだけ頂ければ自分で調べます
952 :
Name_Not_Found:2007/07/19(木) 12:04:46 ID:GLV5BvLn
それも考えたのですが、javascriptだけではできませんか?
CSSを使わないとできないのでしょうか??
zIndex
>>952 JavaScriptでCSSのほぼすべてのプロパティは実行時に設定できる。
逆に言えばCSSのプロパティを設定する以外の方法ではできないね。
あとは自分で勉強すれば。過去スレに山のように例があるだろ。
よくわからんけど、CSSを使わないJavaScriptって何だ?DOM操作だけ?
>>955 いくらでもあるでしょ。フォームのチェックでも画像の差し替えでも
ローカルな計算でもドキュメントの変更でもinnerHTMLの書き換えでも。
e~~~~~~~~~~~
Opera9でimgタグのsrcを書き換えても画像が更新されないことがあるんだけど、対処法ない?
Operaを最小化してから元に戻すと更新されるんだけど、リアルタイムに切り替えたい。
javascriptの変数の値をphpの変数に代入するにはどうすれば良いのですか?
962 :
Name_Not_Found:2007/07/19(木) 20:09:45 ID:iHHyVM0w
よろしくお願いします。
var kyo=new Date();
kyo="2007/10/19"
alert(kyo.getDate)
日付の日にちがでません。どこも悪くないとおもうのですが、
何かまちがっているでしょうか。
なにで確認した?IE?firefox?