私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.80 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
申し訳ない、なんか勘違いしていた私。 >>651
>>648
HTML4.01 ではscript要素の規定値が text/javascript でないため、その指定がないと HTML-lint ではエラーになる。
HTML5 では不要…というか未定義。
HTML4.01 ではscript要素の規定値が text/javascript でないため、その指定がないと HTML-lint ではエラーになる。
HTML5 では不要…というか未定義。
>>653
getElementsByClassName
getElementsByClassName
>>655
IEだったらきかないよ
IEだったらきかないよ
getElementsByClassName が IE8- に対応しないのはわかってるが、「getElementByIdのように、classで要素を取得するメソッド」といえば getElementsByClassName だと思う。
getElementsByClassName は IE9 からサポートされる。
Internet Explorer 9 Beta 開発者ガイド
http://msdn.microsoft.com/ja-jp/ie/ff468705.aspx#_DOM_L2_HTML
getElementsByClassName は IE9 からサポートされる。
Internet Explorer 9 Beta 開発者ガイド
http://msdn.microsoft.com/ja-jp/ie/ff468705.aspx#_DOM_L2_HTML
あ、querySelectorAllもliveなNodeListじゃない(>>629-)
一応。
一応。
>>660
> ・戻り値はliveなNodeListではなく、ただの配列なので注意
non-live には同意するが、配列だろうか…?
var p = document.querySelectorAll('p');
console.log(Object.prototype.toString.call(p)); // "[object NodeList]"
console.log(p instanceof Array); // false
戻り値は non-live な NodeList だと思ってた。
> ・戻り値はliveなNodeListではなく、ただの配列なので注意
non-live には同意するが、配列だろうか…?
var p = document.querySelectorAll('p');
console.log(Object.prototype.toString.call(p)); // "[object NodeList]"
console.log(p instanceof Array); // false
戻り値は non-live な NodeList だと思ってた。
>>663
こうすれば良かった。
console.log(p instanceof NodeList); // true
やはり、戻り値は NodeListインターフェース のオブジェクトな気がする。
こうすれば良かった。
console.log(p instanceof NodeList); // true
やはり、戻り値は NodeListインターフェース のオブジェクトな気がする。
non-liveってあとから追加や削除をしても取得したときの情報のままってこと?
変更後に再度取得しなおせば変更後の情報が得られるの?
変更後に再度取得しなおせば変更後の情報が得られるの?
>>668のリンク先では non-live にするために配列化しているが、live の挙動を利用すればもっと簡単に書ける気がした。
---
<style type="text/css"><!--
.change { color: #ff0000; }
--></style>
</head>
<body>
<div class="test">壱</div>
<div class="test">弐</div>
<div class="test">参</div>
<script type="text/javascript"><!--
(function () {
var elements = document.getElementsByClassName('test');
while (elements.length) {
elements[0].className = 'change';
}
})();
//--></script>
---
---
<style type="text/css"><!--
.change { color: #ff0000; }
--></style>
</head>
<body>
<div class="test">壱</div>
<div class="test">弐</div>
<div class="test">参</div>
<script type="text/javascript"><!--
(function () {
var elements = document.getElementsByClassName('test');
while (elements.length) {
elements[0].className = 'change';
}
})();
//--></script>
---
>>667
ごめん。微妙に間違っていたっぽい。
---
<div class="test">壱</div>
<div class="test">弐</div>
<div class="test">参</div>
<script type="text/javascript"><!--
(function () {
function byClassName () {
var elements = document.getElementsByClassName('test');
while (elements.length) {
elements[0].style.color = '#ff0000';
elements[0].className = 'change';
}
}
var elements = document.querySelectorAll('.test');
console.log(elements[0].style.color); // ""
byClassName();
console.log(elements[0].style.color); // "rgb(255, 0, 0)"
})();
//--></script>
---
live か non-live かっていうのは NodeListインターフェース (わかりやすいところではlength) のみに影響するらしい。
element.style.color など Elementインターフェースの変更は即反映される。
# 自信はないので、鵜呑みにしないで欲しい。(えらい人の解説に期待…。)
ごめん。微妙に間違っていたっぽい。
---
<div class="test">壱</div>
<div class="test">弐</div>
<div class="test">参</div>
<script type="text/javascript"><!--
(function () {
function byClassName () {
var elements = document.getElementsByClassName('test');
while (elements.length) {
elements[0].style.color = '#ff0000';
elements[0].className = 'change';
}
}
var elements = document.querySelectorAll('.test');
console.log(elements[0].style.color); // ""
byClassName();
console.log(elements[0].style.color); // "rgb(255, 0, 0)"
})();
//--></script>
---
live か non-live かっていうのは NodeListインターフェース (わかりやすいところではlength) のみに影響するらしい。
element.style.color など Elementインターフェースの変更は即反映される。
# 自信はないので、鵜呑みにしないで欲しい。(えらい人の解説に期待…。)
>>670
NodeListからDOMが消える前提なのがおかしい。
場合によってはtestクラスを残そうとしたりすると無限ループに陥る。
素直に配列(NodeListだけど)の後ろからループ回せばいいじゃん。
要素の順序が勝手に入れ替わったりしないことは保証されてるし。
(function test() {
var elements = document.getElementsByClassName("test");
for (var i = elements.length - 1; i >= 0; i--) {
var e = elements[i];
e.className = "change";
e.style.color = "#ff0000";
}
})();
NodeListからDOMが消える前提なのがおかしい。
場合によってはtestクラスを残そうとしたりすると無限ループに陥る。
素直に配列(NodeListだけど)の後ろからループ回せばいいじゃん。
要素の順序が勝手に入れ替わったりしないことは保証されてるし。
(function test() {
var elements = document.getElementsByClassName("test");
for (var i = elements.length - 1; i >= 0; i--) {
var e = elements[i];
e.className = "change";
e.style.color = "#ff0000";
}
})();
>>671
指摘ごもっとも。
後ろからループ回せば問題ないということに気が付かなかった…。
# デクリメントすると <!-- comment -->内に置けないので、外部スクリプト化するなり、コメントをなくすなりする必要はあるかな。
指摘ごもっとも。
後ろからループ回せば問題ないということに気が付かなかった…。
# デクリメントすると <!-- comment -->内に置けないので、外部スクリプト化するなり、コメントをなくすなりする必要はあるかな。
画像のうえにテキストを表示させる方法を教えてください。
一応自分でも挑戦してみたのですが、下の方法だと
画像がクリッカブルじゃなくなってしまいます。(FireFoxで動作確認しています)
function add_note(obj, note) {
var elem = document.createElement("span");
elem.innerHTML = note;
elem.style.position = "absolute";
elem.style.left = obj.offsetLeft;
elem.style.width = obj.width;
elem.style.top = obj.offsetTop;
elem.style.height = obj.height;
var objBody = document.getElementsByTagName("body").item(0);
objBody.appendChild(elem);
}
<a href="..."><img src="..." onload="add_note(this, 'aaaaa')"></a>
一応自分でも挑戦してみたのですが、下の方法だと
画像がクリッカブルじゃなくなってしまいます。(FireFoxで動作確認しています)
function add_note(obj, note) {
var elem = document.createElement("span");
elem.innerHTML = note;
elem.style.position = "absolute";
elem.style.left = obj.offsetLeft;
elem.style.width = obj.width;
elem.style.top = obj.offsetTop;
elem.style.height = obj.height;
var objBody = document.getElementsByTagName("body").item(0);
objBody.appendChild(elem);
}
<a href="..."><img src="..." onload="add_note(this, 'aaaaa')"></a>
書き忘れましたが、画像は原寸ではなくて縮小表示させたかったので、imgタグを使っています。
今どきJSのコードをコメントで囲う必要ってあるの?
コードを表示してしまうのって携帯ぐらいだと思ってた。
コードを表示してしまうのって携帯ぐらいだと思ってた。
>>675
<a>でくくらずに、imgタグのonClickにopen("...") と書いてみたんだけれど
ブラウザのポップアップブロックに引っかかってちょっと上手くないですねぇ。
いい方法あるかなぁ。
<a>でくくらずに、imgタグのonClickにopen("...") と書いてみたんだけれど
ブラウザのポップアップブロックに引っかかってちょっと上手くないですねぇ。
いい方法あるかなぁ。
>>676
5年前の携帯でもscriptとnoscriptを認識するぞ・・
5年前の携帯でもscriptとnoscriptを認識するぞ・・
あ、ごめん。
「画像がクリッカブルになってしまいます。」って読み間違えてた。
1,z-index指定。(で出来るはず。)
2,<a href="..."><span style="ほにゃらら">aaaa</span><img src="..."></a>
jsでやる必要がなければ2でいいと思うけどな。jsがoffの人とかも見れるし。
「画像がクリッカブルになってしまいます。」って読み間違えてた。
1,z-index指定。(で出来るはず。)
2,<a href="..."><span style="ほにゃらら">aaaa</span><img src="..."></a>
jsでやる必要がなければ2でいいと思うけどな。jsがoffの人とかも見れるし。
img要素にtitle属性つけとけば2,3秒で指定した文字がツールチップで出てくるよね
>>678
ドコモ携帯はstyle要素の中身すら晒してしまうで
ドコモ携帯はstyle要素の中身すら晒してしまうで
>>676
ブラウザとしてなら必要ないかもしれないが、他のパーサー通すときにコメントアウトしていないと困るパターンはある。
XHTMLなら外部スクリプト化するか、CDATAセクションを使うべき。
XMLパーサーを通した時にどのようなノードを生成するか考えてみるといい。
ブラウザとしてなら必要ないかもしれないが、他のパーサー通すときにコメントアウトしていないと困るパターンはある。
XHTMLなら外部スクリプト化するか、CDATAセクションを使うべき。
XMLパーサーを通した時にどのようなノードを生成するか考えてみるといい。
XHTML文書は <>& をエスケープしてもいいが、メンテが面倒になる。
<p>foo</p>
<script type="application/javascript">
(function () {
var p = document.getElementsByTagName('p');
for (var i = 0, l = p.length; i < l; i++) {
p[i].className = 'foo';
}
})();
</script>
# "Content-Type: text/html" を出力するなんちゃってXHTML文書はXHTMLにする意味があるのか、と思うこの頃…。
<p>foo</p>
<script type="application/javascript">
(function () {
var p = document.getElementsByTagName('p');
for (var i = 0, l = p.length; i < l; i++) {
p[i].className = 'foo';
}
})();
</script>
# "Content-Type: text/html" を出力するなんちゃってXHTML文書はXHTMLにする意味があるのか、と思うこの頃…。
id付きの要素がスクリプトによってドキュメントに追加されるのですが
追加される以前にdocument.getElementByIdで取得しようとしてもnullになります
追加されたかどうか判断するにはどうすればいいですか?
nullじゃなくなるまでずっとループを回すんですか?
追加される以前にdocument.getElementByIdで取得しようとしてもnullになります
追加されたかどうか判断するにはどうすればいいですか?
nullじゃなくなるまでずっとループを回すんですか?
ところで、「今時 = XHTML」なのかな?
docomoなどの携帯電話で扱われるXHTML文書は XHTML 1.x や XHTML5 とかけ離れた仕様だと思っていて、それを今時というのには抵抗があるのだが…。
docomoなどの携帯電話で扱われるXHTML文書は XHTML 1.x や XHTML5 とかけ離れた仕様だと思っていて、それを今時というのには抵抗があるのだが…。
別のスクリプトによって、任意のタイミングでそのidの付いた要素がドキュメントに挿入されます
挿入されたその要素に対して何か操作をしたいので
その要素が挿入されたかどうかはどうやって判断すればいいのかなと
挿入されたその要素に対して何か操作をしたいので
その要素が挿入されたかどうかはどうやって判断すればいいのかなと
>>692
たとえばJavaScriptでFlashを埋め込んで、
Flashのロードが完了したらJavaScriptからFlashを操作するときとか、
俺はsetTimeoutで100~200msごとくらいにロード状況をチェックして、
ロード完了時に操作を受け付けるようにしてる。
で、30秒~1分くらい経ってもロードできないときは中断してエラーを吐くようにする。
たとえばJavaScriptでFlashを埋め込んで、
Flashのロードが完了したらJavaScriptからFlashを操作するときとか、
俺はsetTimeoutで100~200msごとくらいにロード状況をチェックして、
ロード完了時に操作を受け付けるようにしてる。
で、30秒~1分くらい経ってもロードできないときは中断してエラーを吐くようにする。
どうもありがとうございます
setIntervalじゃなくてsetTimeoutを100~200msごとくらいに使うんですね
setIntervalじゃなくてsetTimeoutを100~200msごとくらいに使うんですね
setIntervalは時間がきたら有無を言わさず処理しちゃうから、
処理が重複するリスクがあったりする
こういう場合はsetTimeoutで一回一回チェックしたほうがいいと思うよ
処理が重複するリスクがあったりする
こういう場合はsetTimeoutで一回一回チェックしたほうがいいと思うよ
どうでもいい話だが、>>693をイカ娘が打ってると思うとなごんだw
jQueryを使って文字列置換をしているのですが、
$(function(){
var tmp = $(".class0");
tmp.html(tmp.html().replace(/aaa/ig, "bbb"));
})
この aaa 部分を変数を使って指定するにはどうしたら良いでしょうか?
$(function(){
var tmp = $(".class0");
tmp.html(tmp.html().replace(/aaa/ig, "bbb"));
})
この aaa 部分を変数を使って指定するにはどうしたら良いでしょうか?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + 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
トップメニューへ / →のくす牧場書庫について