元スレ+ JavaScript の質問用スレッド vol.80 +
JavaScript覧 / PC版 /みんなの評価 :
501 = :
>>500
http://googlejapan.blogspot.com/2010/04/google.html
502 = :
>>501
配置覚えられるかwwwと思ったが四月馬鹿ネタなのか
ネタとして買ってみたい気持ちでもあるが
503 = :
>>486>>487>>488>>489>>490>>491
ありがとうございます。漠然としすぎました。
上記(>>485)のような構造(これが繰り返しある)をしているサイトのGreasemonkeyを作ろうと思っていて、
ただ、取得したいa要素にidがついておらず、またdiv、p、h2が別の場所にも散在しているため、
「hogeクラスのdivの中にある、最初のa要素(本当はhogeの中にa要素は複数ある)」のテキスト部分を
取り出そうと思ってやってみたのですが、四苦八苦してしまった、という感じです。
var hogelist = document.getElementsByClassName('hoge');
for (var i = 0; i < hogelist.length; i++) {
とした後の、テキスト取得の部分がうまくいかないです。
hogelist[i].childNodesだったりitemだったり色々組み合わせて試してみたんですが、
動かなかったり、nullやUndefinedが返ってきたり・・・
たぶん初歩的な部分が分かってないんだと思うんですが、引き続きアドバイスお願いしたいです
504 = :
とりあえずFirebugsのコンソール使ってみたら?
505 = :
>>503
var x = document.getElementsByClassName("hoge");
for(var i = 0; i < x.length; i++){
var a = x[i].getElementsByTagName("a");
for(var j = 0; j < a.length; j++){
var t = a[j].firstChild.nodeValue;
if(t.nodeType == 3){
alert(t.nodeValue);
}
}
}
506 = :
今からJava勉強すんのってどうよ
507 = :
Javaスレで聞くのが適切だと思います
508 = :
>>501
代書屋さんにある和文タイプみたいだ。
509 = :
510 = :
>>509
全角スペースだからちゃんと半角に直してね
511 = :
Firefox は \u3000 を White Space と解釈できるはずなんだが…。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.2
512 = :
>>509 何で動かないのか書かないと「ああそうですか」で終わっちゃうわけで
513 = :
>>510
本当に丁寧にありがとうございます。
ただ、何度やっても、Undefinedしか表示されないです;;
514 = :
>>513
nodeType == 3(テキストノード)のときしかalert出ないからUndefinedは出ないはずなんだけど
515 = :
>>513
ミスってたすまん
- var t = a[j].firstChild.nodeValue;
+ var t = a[j].firstChild;
でもt.nodeTypeがnullになるからUndefinedにはならないんだよね、ちゃんと更新は反映されてるの?
516 = :
>>515
ありがとうございます。書き換えてみると、今までで一番近い挙動になりました。
ただ、今回のalertは、hoge 内のa要素すべてのテキストを順番にalertするような挙動のようです。
実際には、hoge 内には、4つのa要素があり、今回のを動かしてみると、4つのa要素のテキストが順番にalertされました。
自分が取得したいのは、2番目のa要素のテキストなのですが(1つめのa要素を見逃してました)、
>>505のalert部分を、
alert(t[1].nodeValue);
とするのではいけないのでしょうか・・・?(ちなみにコレにするとalert自体がされなくなりましたorz
518 = :
Firefoxならこれでいいんじゃない
Array.forEach(
document.getElementsByClassName('hoge'),
function (div) {
var link = div.getElementsByTagName('a')[1];
var text = link.textContent;
alert(text);
});
519 = :
>>518
ありがとうございます!無事望んだ挙動が得られました。
アドバイス頂いた皆様ありがとうございます><
520 = :
forEachってforループと役割が違う?書き方が違うだけ?
521 = :
・ループを途中で止められない(everyかsomeなら止められる)
・ループごとにスコープが生成される(>>327はそんな感じ)
522 = :
疎な配列で番号をちゃんと飛ばす
523 = :
>>521
無限ループと同じでbreakすれば止められるよね
525 = :
は?
527 = :
javascriptのforEach文ってfor (var i in hoge)でしょ?
<script>
var hoge = [1,4,1,4,2,1,3,5,6];
for (var i in hoge) {
document.write(hoge[i]+"<br>");
if (hoge[i] == 3) {
break;
}
}
</script>
528 = :
>>518からの流れだよ
>>527はfor-in文。JSにはforEach文なんてないよ。他の言語と混同してる
Firefoxにはfor each-in文というのがあるけどね
529 = :
for...inやfor each...inは配列に使っちゃ駄目ってmdcに書いてあった
あとforEachは
http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach#Compatibility
と同等ってmdcに
530 = :
ECMAScript 5で標準化されてIE9がやっと最後に実装するというのに
いまだに「JSにはforEach文なんてない」などとぬかすか
532 = :
流れを見ずに書き込んだ
スマンコ
533 = :
>>528
こういう配列やオブジェクトの要素数すべてに対して
ループを行うものをforeach文というんですよ
JavaScriptの場合いくつかあるけど
このfor-inもforeach文の1つ
534 = :
発端の>>520を確認してほしいんだが
なんで「forEach」から「多言語で言うforeach文」って話になるんだ
520がそういう意図で聞いたというのなら、>>529だね
535 = :
>>533
その認識は危険
JSのfor-inはプロトタイプを辿るから他言語のforeachと違う
537 = :
for-inだけじゃなくて全てにおいて実装依存では
このスレでJavaScriptエンジンつくろうず
言語はC#で頼む
539 = :
>>537
それはさすがに頭が悪い
540 = :
ほんと池沼みたいな奴ばっかだな
541 = :
function getText(n){
var strings = [];
getStrings(n, strings);
return strings.join("");
function getStrings(n, strings) {
if (n.nodeType == 3)
strings.push(n.data);
else if (n.nodeType == 1) {
for(var m = n.firstChild; m != null; m = m.nextSibling) {
getStrings(m, strings);
}
}
}
}
このコードが動きません.教科書のサンプル写しました.
だれか教えてくれませんか
542 = :
>>541
あまり良いコードとは思えないけど、動くでしょ。
544 = :
まさかdocumentを与えてないよな
545 = :
>>544
すみません.その通りでした....
ありがとうございました
546 = :
<SCRIPT LANGUAGE="JavaScript">
<!--
function Rogin(){
window.open("rogin.html","rogin","");
if(!$count2){$count++;$count2++;}
else if($count2){window.alert('本日は既にログイン済みです!');}
}
}
// -->
</SCRIPT>
<input type=submit value=ログイン onClick=\"return checkRogin()\">";
Perlで作成しているページのログインボタンについてなのですが
$countは累計ログイン数、$count2は今日ログインしたかどうかの記録です
上のようにしてみたところ上手くいかないのですが、サブルーチン内でcountを増やす処理ってどうすればよいのでしょうか?
547 = :
>>546
関数の外で変数宣言すれば外でも値が保持される。
var $count;
でもページを再表示したら保持されないよ。保持したければcookieとかサーバーサイドで保存しないと。
余談ですがifの条件でcount2のfalseを評価してるからelseにはif要らない。この場合。
あと、ログインのスペルは log in だよ。
あと、JSで変数に$は要らないよ。あってもいいけど
548 = :
あと、JavaScript で未定義の変数をインクリメントしてもうまくいかないよ。
最初に数値を代入しておかないと。
549 = :
>>546
Perl側の処理とJavaScript側の処理を混同してるね。
Perlで生成したHTMLにあるJavaScriptから、Perlスクリプト内の変数に直接アクセスすることはできないよ。
フォームを使ってPerlスクリプトにパラメータをPOSTするか、
XMLHttpRequestでPerlスクリプトにアクセスできるようなJavaScriptをHTMLに入れておく。
550 = :
sub LOGINCHECK{
if($count2){print << " -----END-----";
<SCRIPT language="JavaScript">
function checkLogin(){
window.open("rogin.html","rogin","");
if(!count2){
var count = $count + 1;
var count2 = 1;
document.all.subject.value=count;
document.all.subject.value=count2;
document.login.submit();
}if(count2){window.alert('本日は既にログイン済みです!');return false;} }
<form method="post" action="login.cgi" name="login">
<input type="hidden" name="count">
<input type="hidden" name="count2">
<input type=submit value="ログイン" onClick="return checkLogin()"></td></tr>
</form>
</script>
-----END-----
}else{print "";}
my $count = $in{'count'};
my $count2 = $in{'count2'};}
LoginとRoginのミスはお恥ずかしい・・・
PERLでの記述になっていますが上記のように作りました
Java内でPOSTで送信した値をJava終了時に取得させてみたところやはり値の取得ができていません
POSTの使い方間違ってますかね?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.130 + (1001) - [95%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [95%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [95%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.101 + (1001) - [95%] - 2012/7/16 14:15
トップメニューへ / →のくす牧場書庫について