07/04/30 14:44:15
>>897
兄弟レベルにあるのなら次ので十分なんじゃないの?
var x = this.nextSibling;
while(x != null && x.nodeName != 'TD') x = x.nextSibling;
読みにくければこれを関数にして「nextName(this, 'TD')」
みたいに呼ぶとか。
899:Name_Not_Found
07/04/30 15:01:00 zPYOOue3
>>898
汎用性とか色々考えての質問なんだが。
3つ下の<TR>とか、2つ前の<A>とかね
900:Name_Not_Found
07/04/30 15:30:22
そんなすばらしいものはないからあきらめろ。
XPathだのTreeWalkerだの使えばすっきりいくかもしれんが。
901:Name_Not_Found
07/04/30 17:30:21
>>899-900
洩れもそういう複雑なことを言うのなら自分で新たに発明
するよりもXPathとかだと思うけど。自分でHTMLを書くんだから
自分で制約を設けてコードも簡潔に済むようにするんでも、
任意の構造のHTMLを書いてコードも頑張るのでも、好きに
したらいいのでは。
902:Name_Not_Found
07/04/30 19:51:09
>>896
> 一々 HTML 中に id を振らなくても script から後付けできるし,
> id 以外の attribute を付け加えても良い事を肝に銘じるべき.
それが出来るなら目印(idなど)は必要ないだろ。
903:Name_Not_Found
07/04/30 20:04:24
>>899
要するに、MSXMLのnextNode()みたいなことをやりたいが、
IEでHTMLを扱う時にはそれらしい簡単な方法がないから困る、っつうことだな。
再帰とかDOM標準で遊んでもいいが、実用的に実行速度重視で書けば、次のようになる。
今つらつらと書き込んだだけでテストしてないので動くかどうか知らんがな。
/*@cc_on @if (1)
function nextTo (context, root, filter) {
var i;
var all_length;
var current;
var all = root.all;
i = context.sourceIndex - root.sourceIndex;
all_length = all.length;
while (i < all_length)
if (filter(current = all.item(i++)))
return current;
return null;
}
function isTD(n) {return /^TD$/i.test(n.nodeName);}
function nextTD(context, root) {return nextTo(context, root, isTD);}
@end@*/
904:Name_Not_Found
07/04/30 20:25:07
>>899
あと、TRやTDのような、(?:inner|outer)HTMLの値が終了タグ省略の形で得られる物だから無理なんだが、
逆に、整形式が保証される場合には、XMLDocumentにloadXML()しちゃえば、nextNode()とか使い放題だ。
まあ、そういう神経を使うような分岐はやらない方が賢明だから、>>903みたいな関数を作って対応するがな。
他のブラウザ(というかFx)の場合は、こういういわゆる二重マークアップを扱う時には、
レスで挙がっているように、TreeWalkerを上手に使えば総じて速い。
しかし、XPathの方が包括的だし、XPathの方が流行っていて情報も多いだろうから、XPathを使うに限るだろうな。
あと、TreeWalkerはフィルターアウトされたノードの扱いにおいて、仕様と実装が異なるから、敬遠した方が良かろう。
ついでに、NodeFilterとメソッドacceptNode()のthisの扱いも特殊なので、知らなければ悩むことになりかねない。
だから、XPath使え、になるだろう。今のサイ本からはTreeWalkerは消滅したしw
905:Name_Not_Found
07/04/30 20:39:34 4lpCFbIT
>>902
>それが出来るなら目印(idなど)は必要ないだろ
どういう意味 ?
("それ" ができないと言いたいようにも読み取れるし,
"idなど は必要ない" との主張に重きがあるようにも読める)
仮に後半部だと仮定して答えると...
menu などのボタンを自動作成する script を書いたとする.
ボタンを押した時に呼び出す function に受け渡す parameter としては色々考えられる.
その中の候補として id が便利なことがある.
と, こんな所でどうかな ?
906:Name_Not_Found
07/04/30 20:43:22
次スレのテンプレ論議とかあれば今どうぞ。
907:Name_Not_Found
07/04/30 21:04:26
テンプレのネスケのリファレンスとガイドを格上げしよう(単独で>>1に)。基本的な事は、これ読めば書いてある。
まず、これ読めって回答が結構多い。
908:Name_Not_Found
07/04/30 22:49:22
>>907
なるほどー。反対意見はないですか?
909:Name_Not_Found
07/05/01 00:08:23 cnrEVKci
変数のサイズって制限ありますか?
読み込んだテキストを配列にいれておいて、任意で表示するってありきたりな処理ですが、
トータル100kb、200kb入れても問題ないでしょうか?
910:Name_Not_Found
07/05/01 00:25:08
>>909
数百kbなら何でもないでしょ。ふつーの画像1個のサイズと変わらんし。
911:Name_Not_Found
07/05/01 01:32:14
forでベンチしようぜ?
912:Name_Not_Found
07/05/01 04:15:57
>>908
反対はせんが載せるならきちんと管理が続いてるMDCのほうを載せてくれ。
Referenceの日本語訳も結構進んできたし。
あと、E4XとGecko DOM ReferenceのURLも古いままだから直してくれ。
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
→ URLリンク(developer.mozilla.org) (和訳)
→ URLリンク(developer.mozilla.org)
→ URLリンク(developer.mozilla.org) (和訳)
E4X (ECMAScript for XML)
→ URLリンク(www.ecma-international.org)
→ URLリンク(www.ne.jp) (和訳)
Mozilla Gecko DOM Reference, Netscape devedge
→ URLリンク(developer.mozilla.org)
→ URLリンク(developer.mozilla.org) (和訳)
→ URLリンク(devedge-temp.mozilla.org)
913:Name_Not_Found
07/05/01 20:26:50 QWGDxlnj
質問です
914:Name_Not_Found
07/05/01 20:46:38
答えです
915:Name_Not_Found
07/05/01 21:17:49
報告です
916:Name_Not_Found
07/05/01 22:12:36
連絡です
917:Name_Not_Found
07/05/01 22:30:19
ゴルァ そこのおまえら資源をムダにしてるんじゃねえ!
918:Name_Not_Found
07/05/01 23:41:14
なんだコノヤロー!!
919:Name_Not_Found
07/05/01 23:46:36
何がコラか!タココラ!
920:Name_Not_Found
07/05/02 00:01:01
次の質問ドゾー。連休だからなあトホホ…
921:Name_Not_Found
07/05/02 00:10:55
>>920
javascriptって何ですか?
922:Name_Not_Found
07/05/02 00:35:28
>>921
今は亡きネットスケープ社が開発したブラウザ上で動くスクリプト言語です。
オブジェクト指向のような言語体系と、当時サンが作ったJavaにそっくりな
名前が特徴です。
923:Name_Not_Found
07/05/02 00:47:43
>>922
では、JavaScriptはサンのJavaと同じような言語だと考えてよいのですか?
924:Name_Not_Found
07/05/02 03:31:46
>>923
似て非なるものだと考えてください。
925:Name_Not_Found
07/05/02 07:14:21
お食事券と汚職事件みたいなもんか。
926:Name_Not_Found
07/05/02 08:26:54
最近prototypeとかDojoとか
MochiKitとかjQueryとか流行ってますが
おすすめはどれですか?
927:Name_Not_Found
07/05/02 08:31:45
適材適所ですが、Dojoがいいかな
928:Name_Not_Found
07/05/02 08:34:38
「JavaScript ライブラリ 比較」でぐぐる。
929:Name_Not_Found
07/05/02 10:31:53 qCpvRgaz
質問です。
JavaScriptではrubyのように、
['a','b','c'].each(function(i) {
F(i);
}
);
みたいに書くことはできますか?IEでできる方法ありましたら
ご教示お願いします。
930:Name_Not_Found
07/05/02 12:22:51
>>929
Array.prototypeに自分で追加しちゃってもいいのなら
(状況によってはライブラリや既存コードとの干渉があり危険)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
Array.prototype.each = function(f) {
for(var i = 0; i < this.length; ++i) f(this[i]);
}
</script>
</head></body>
<p><script type="text/javascript">
['a','b','c'].each(function(i) { document.write(i + '<br>'); });
</script></p>
</body></html>
931:Name_Not_Found
07/05/02 12:32:07
Arrayのprototype拡張するとかありえない
932:929
07/05/02 12:50:06 gIB6sOw+
>>930さん ありがとうございました。
危険ですね。for-inが悪夢を呼びそうです。
>>931さん
ありえない、とは?>>930さんのでもありえなくはない
と思うのですが。向学のためにお聞かせください。
933:Name_Not_Found
07/05/02 12:53:53
for-in関連の事じゃね
934:Name_Not_Found
07/05/02 13:00:48
Arrayだけは駄目だな。
他のはある程度許されると思うけど。
935:Name_Not_Found
07/05/02 13:01:23
あ、ごめん、Objectは論外ねw
936:Name_Not_Found
07/05/02 13:30:46
そういう言語なんだから自由に拡張すればいいだろ。
937:Name_Not_Found
07/05/02 13:36:50
まあこのように、議論百出くらい危険というか(w
ところで私ことスレ立て人してるのですが、連休で明日から
6日まで出かける間に満杯になると思われるので、どなたか
適当に次スレ立ててくださいませ…
938:Name_Not_Found
07/05/02 13:44:02
>>937
全然危険じゃないというか、危険を煽る必要が全くない。
仮にバグっても、初心者1週間でもない限り、誰でも一瞬で気付いて修正できる。
939:Name_Not_Found
07/05/02 14:59:39
いやそういう意味じゃなく単に賛否両論あるねという意味
なんだがそう読めないかな。賛成派がいることは否定しないよ。
940:Name_Not_Found
07/05/02 16:18:26
>>937
乙。一路平安!帰国の際はご一報を。マカデミアナッツageよろ。
941:Name_Not_Found
07/05/02 16:28:56
常時粘着してないと毎度々々スレ立てなんてできないよな…
942:Name_Not_Found
07/05/02 22:54:03
前スレであったけど、言語の基本的な性能を失わせるから駄目なんじゃなかったっけ。
危険を煽るとかそういうレベルではなく駄目だろ。
943:Name_Not_Found
07/05/03 02:45:23
俺は組み込みオブジェクトも拡張できるのが
JavaScriptの基本的な性能のひとつだと思ってるがな。
ObjectはさすがにないがArrayならメリットのほうが大きいだろ。
大体配列をfor-in文で回したら列挙の順番が保証されないし、
疎な配列なんて普段使わんから配列に関するfor-in文の有効性を感じない。
まあこれは全部自作スクリプトで構成するのが前提なんで、
外部ライブラリとか使うならデメリットのほうが上回るかもしれんが。
944:Name_Not_Found
07/05/03 09:41:19
mozillaの__defineGetter__ , __defineSetter__ に相当する動作をIE6で実現したいのですが何か良い方法はありませんか。
URLリンク(developer.mozilla.org)
945:Name_Not_Found
07/05/03 10:39:43
>>929
自分で拡張するのも悪くないと思うが、prototype.js を使うのがデファクトスタンダードかと。
Rubyちっくなクロージャも簡単に使えるようになる。
946:Name_Not_Found
07/05/03 10:42:46
疎な配列は、使うと便利だけどな。慣れてない人が多いだろうけど。
俺は組み込みオブジェクトのprototype拡張って、グローバル関数を作るのと同じくらい嫌だな。
適当なクラスを作るほうがいいなぁ。好みの問題だけどね。
947:Name_Not_Found
07/05/03 11:31:56
>>946
> グローバル関数を作るのと同じくらい嫌だな。
グローバル関数を作るのがかなり嫌な感じに読み取れたんだけど、
グローバル関数ってそんなに作らない方が良いものなの?
適当に作る時はクラスとか用意せずグローバル関数で作っちゃうんだけど。
948:Name_Not_Found
07/05/03 12:34:37
>>944
求めている物とは全然違うだろうが、
URLリンク(msdn2.microsoft.com)
にGET属性やPUT属性がある。
949:Name_Not_Found
07/05/03 12:46:19
>>947
適当なときは何をやってもいいと思うけど、
納品するソースコードの構造にはかなり気を遣う気がする。
基本的にはグローバル変数は1個か2個で、
あとはスコープで必要ないところから見えないようにパッケージしてる。
950:Name_Not_Found
07/05/03 13:12:54
>>945
>Rubyちっくなクロージャも簡単に使えるようになる。
現在はともかく、初期においてはどう見てもJS初心者だった作者が
勢いで好きなRuby風に書いたのだろうから、Rubyチックなのは当たり前だろう。
しかし、クロージャに関しては、Rubyチックなクロージャにできるわけがない。
そもそもRubyのクロージャは個性的だろ。少なくともJSのそれ(関数でクロージャ)とは違う。
まあ、メソッドの名前などが同じということと混同しているだけだろうが、少しでも正しい向きに認識した方がいい。
951:945
07/05/03 16:33:04
そのとおり、Rubyちっくなのはクロージャを利用するEnumerableなメソッドな。
eachはもとより、detectとかfindall、そしてinjectとか。
JSのクロージャじゃなくて、Prototype.jsで実装しているクロージャのこと。
関数でクロージャというのは、Rubyでも基本的には同様だ。
>しかし、クロージャに関しては、Rubyチックなクロージャにできるわけがない。
というのはコードブロックのスコープのことでも指してるのか?
952:Name_Not_Found
07/05/04 11:30:47
>関数でクロージャというのは、Rubyでも基本的には同様だ。
スレ違いなんだが、それどこの脳内Ruby?w
953:Name_Not_Found
07/05/04 21:04:50
正確には関数じゃなくてメソッドな。Rubyなんだから
954:Name_Not_Found
07/05/04 22:31:30
JavaScript質問スレ
スレリンク(hp板)
955:Name_Not_Found
07/05/05 00:31:18 Etv08Alo
質問なんですが、jsファイルからjsファイルをインクルードすることは不可能なんでしょうか?
956:Name_Not_Found
07/05/05 01:56:02
ねだるな、ググれ、さすれば与えられん
957:Name_Not_Found
07/05/05 03:57:18
つJSONP
958:Name_Not_Found
07/05/05 06:22:05
実際はJSONPを使わないけどな
959:Name_Not_Found
07/05/05 23:46:49
さすったら赤くなってきたよ
960:Name_Not_Found
07/05/06 00:22:03
function hoo(id_num) {
id_num.innerText = "Changed!";
}
これがうまいこと行かない。。
id_numが展開されてないみたいなんだけど、どうすればよろし?
961:Name_Not_Found
07/05/06 00:33:32
>>960
どう上手くいかないかってエラーと、
hooの呼び出し方をどうしてるかを書いた方がよろし
962:960
07/05/06 01:00:30
スマソ
function hoo(id_num) {
id_num.innerText = "Changed!";
}
呼び出し側
<input type="checkbox" name="1" value="chk" onClick="hoo(id_1);"<span id="id_1">データ取得する</span>
チェックボックスの横にある文字をチェックで動的に変更したいんだけど
hoo側のid_numが展開されずにid_1.innerTextとならない。
何かいい方法ない?
963:Name_Not_Found
07/05/06 01:07:38
inputを閉じてないのは何故なんだぜ?
964:Name_Not_Found
07/05/06 02:53:37
>>962
spanの前でinputを閉じてると仮定して、やりたいことはIEで上手く行ってる気がするけど?
Firefoxで駄目って言うならinnerTextをinnerHTMLに変えたらいいのかな
ただ、document.getElementById()使ってない時点で気持ち悪いから
FirefoxにFirebug入れてバグ取りした方がいいと思うよ
965:Name_Not_Found
07/05/06 03:29:59
Firebugって作者の独りよがりなtoString()の結果を吐く使えない拡張のことだよね。
面白いけど、あんなもの使えませんよ。
喜んでるのはPrototype.jsで入門したような初心者ばっかりじゃん。
966:Name_Not_Found
07/05/06 03:38:22
苦労人乙。
967:Name_Not_Found
07/05/06 04:02:11
いまだにprototype.jsとか使ったことないんだけど、最近とても負け組な気がしてます。
968:Name_Not_Found
07/05/06 04:42:57
>>965
>>962の状態から薦めるとしたらFirebugが一番いいかなと思ったのだけど。
あぁ。Firefoxは普通にjsコンソールでわかるのか。
Firebug入ってるのがデフォだから入れないと見れないかと勘違いした。
969:Name_Not_Found
07/05/06 09:19:42
prototype.jsは要らん。中見ると分かるが、あのライブラリを作った人間は
JavaScriptを他言語の視点で見ている。すでにbuggieなところも指摘されて
いる。要するに自作関数ひとつロクに書けない奴がありがたがっているだ
けのもの。
970:Name_Not_Found
07/05/06 13:42:28
それをここに書き込んでも、空ろに響くだけ。
971:Name_Not_Found
07/05/06 14:27:39 aETLRuxv
質問です。
var a = 1;
f(a);
function f(b){ alert( b ); }
で、f(a)を実行する時点でどうしてオブジェクト未定義の
エラーにならないのでしょうか。そのときはまだ関数が読
み込まれていないのでエラーが出ると思うのですが。
972:Name_Not_Found
07/05/06 14:53:32
関数は先に認識されてから実行される
973:971
07/05/06 16:08:50 aETLRuxv
>>972さん
そういうことなんですね。ありがとうございます。
974:Name_Not_Found
07/05/06 21:06:29
ところでjqueryってどこからダウンロードしたらいいんですか?
975:Name_Not_Found
07/05/06 21:11:14
休みはもうすぐ終わりだな
976:Name_Not_Found
07/05/06 21:28:53
月曜日だな
977:Name_Not_Found
07/05/06 21:48:41 J0s6cMJQ
URLリンク(blog.livedoor.jp)
>記法中のjavascriptを、(function(){/* ... */})()でくるむことで、変数衝突を回避
とあるのですが、()()と囲んでいるのはなんでしょうか?
978:Name_Not_Found
07/05/06 22:14:19
script.js
----
function hage(){
alert('go bold!');
}
----
index.html
----
<script src="script.js"></script>
<button onclick="hage();">hage</button>
----
上のソースで、script.jsの読み込みが完了していないときにボタンを押すとエラーになりますが、何かウマい解決方法はないでしょうか。
979:Name_Not_Found
07/05/06 22:17:23
>>977
function f(){
alert();
}
var a=f;
a(); ←「 () 」
/*-------------*/
var a=function(){
alert();
}
a(); ←「 () 」
/*-------------*/
(function(){
alert();
})(); ←「 () 」
980:Name_Not_Found
07/05/06 22:59:38
944です。
>>948
今回必要としている物とは違うようですが参考になりました。
機会があったら使用してみたいと思います。ありがとうございました。
質問した件はIE固有の話のため、少し強引ですがVBScriptとの連携で対応しようと考えています。
具体的にはVBScript側でProperty Let と Property Getを含めたClassの定義及び
インスタンス化までを行い、そのインスタンス変数をJavaScriptから使用します。
それでも生成済みオブジェクトに対して
動的にプロパティを追加することは出来ないですが、
例えば、Classの構造を記した文字列にプロパティ記述を追加し
execScriptすることで対応できないかと考えています。
スレ違いになりそうなのでこの辺で。
981:Name_Not_Found
07/05/06 23:01:02
>>978
script.js内にダブらないグローバル変数を定義しておいて、変数が見つかるまでsetTimeoutで一定時間ごとにループしつつ判定し、見つかったらbuttonにonclickイベントを割り当ててからループをやめる
・・・のは無駄なのでscript.jsの最後にbuttonにonclickイベントを割り当てる処理を書く。
982:Name_Not_Found
07/05/06 23:54:00
>>978
onclick="if (typeof hage == 'function') hage();"
しかしclickイベントタイプのようなbubblesプロパティがtrueであるイベントオブジェクトは
documentやwindowのように変更されない(変更されないと楽観視できる)オブジェクトを適切に選んでcurrentTargetにする。
ただしtargetを識別するための情報を事前に確保しておく。例えば<button id="HAGE">のように。
983:Name_Not_Found
07/05/07 06:27:12
window.hage&&hage() しちゃうな。>>982 と変わらんけど。
もしくは<head>内<script>でダミーのhoge()つくっといちゃう。
984:Name_Not_Found
07/05/07 09:00:59
<script language="JavaScript">
<!--
function myFunc(){
myD = new Date();
myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
myMonth = myD.getMonth() + 1;
myMonth2 = (myMonth < 10) ? 0+""+myMonth : myMonth;
myDate = myD.getDate();
myDate2 = (myDate < 10) ? 0+""+myDate : myDate;
myMess = myYear4 + "" + myMonth2 + "" + myDate2;
document.write( myMess );
}
// -->
</script>
これでmyMessは20070507などとなってるわけですが、ここで
<a href=/contents/txt○○○○.html>今日のお話</a>
のようなリンクを作って、○○○○に今日の日付を入れたいのですが
どのようにすればいいのかわかりません
よろしくお願いします
985:Name_Not_Found
07/05/07 10:16:18
>>984
DOM getElementByID setAttributeあたりでぐぐれ
986:Name_Not_Found
07/05/07 15:58:14
>>984
<a href="javascript:window.location.href='/contents/txt'+myMess+'.html'">今日のお話</a>
987:Name_Not_Found
07/05/07 16:00:10
「;」忘れてた
988:Name_Not_Found
07/05/07 17:52:11
新スレ
スレリンク(hp板)l50
989:Name_Not_Found
07/05/07 19:31:40
湯加減は?うめる?
990:Name_Not_Found
07/05/07 20:39:50
次スレのテンプレにある参考サイトの是非とかここでやるのはどう?
実際にこういうサイトを見てる人の意見が聞きたい。
991:Name_Not_Found
07/05/07 21:19:05
>>989
風呂を「うめる」、というのはどこの言葉?
東北出身の母のいるうちでは普通に使うんだけど、
京都では周りにほとんど通じない気がするんだよな。
992:Name_Not_Found
07/05/07 22:33:40
うめるは結構いろんなところで通じるけど
大阪の友達は湯を張ることをうめるって言ってて混乱したな
993:Name_Not_Found
07/05/07 22:36:43
洩れは東京だけど。普通に使うよ。水を足して湯の温度を下げるっていう
意味で。あと、京都では風呂かも知れないけど、東京じゃ湯だね。
994:Name_Not_Found
07/05/07 22:44:48
新スレ
スレリンク(hp板)l50
995:Name_Not_Found
07/05/07 22:52:45
大阪出身。
うめるって使いましたが、
1.熱い時に水でうめる
2.ぬるい時にお湯でうめる
という使い方が多かった。1がより多かったかな
996:Name_Not_Found
07/05/08 00:19:59
大阪出身だけど、風呂の話をしている時に
「うめる」っていう動詞を使ったことはないな
997:Name_Not_Found
07/05/08 00:25:54
「水でうめる」って江戸っ子のジイさんが銭湯で言う。
「べらんめえ、うめるな」みたいな。
998:Name_Not_Found
07/05/08 00:36:57
関西じゃあ、うめるのは固体ですよね?
999:Name_Not_Found
07/05/08 00:39:56
方言ってわけでもないようだね
URLリンク(dictionary.goo.ne.jp)
↓1000
1000:Name_Not_Found
07/05/08 00:42:10
<丶`∀´>
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。