元スレ+ JavaScript & jQuery 質問用スレッド vol.5 +
JavaScript覧 / PC版 /みんなの評価 :
201 = :
>>195
うお、ありがとうございます。
remove();早いですね。
ただ、比較したいのはjsではなくcssのdisplay:none;なんす
202 = :
>>200
うお!?調べてみます!ありがとさん
203 = :
>>201
本当にDOMに残るのが気持ち悪いのかを考えたほうがいいよ。
単に見えてないのにDOM上は存在する。ということに対して
気持ち悪いと言ってるならそれは間違い。
現在のURLに対して、そのDOMの内容をCSSを無効にして表示して
意味的におかしくなるか?で考えたほうがいい。
デザイン的には見えなくしたいんだけど、
別に表示されていてもおかしくないんじゃね?と
思うならば非表示にするだけでいいだろう。
204 = :
>>203
むむ、
CSS無効だと意味的におかしいです。
内容重複表示になります。
てことは、jsでremove()ってことですね?
しかし実際はcss無効よりjsを無効にされることの方が多いような。。(そういう事ではないか)
205 = :
ちなみに実際はこんなケースでした。
システムで出力されたデータがあり、
データA
1a
2b
3b
4a
5a
6b
7a
8a
・
・
200b
aのみを抽出して場所1に表示、bは場所2に表示(場所1と2の間には別の出力ソースがある)
データAは何度も出力できるが、aとbの出力分けはできない仕様。
206 = :
まったくわからんw
207 = :
本当にパフォーマンスを気にするならCanvasで表現することを考えたほうが良い。
208 = :
>>204
>>203 は css を前提にしないページの話。
そうでない場合は判断基準として妥当ではない。
例えば同じコンテンツの複数のバージョンを動的に切り替えたい時に毎回サーバから取ってこないといけない事になる。
取ってきた方が良い時もあるけどケースバイケース。
209 = :
毎回とってこなくても、キャッシュに入れておけばいいと思うが?
211 = :
CSSで一々、存在する要素を見えないようにしていたら、
メンテナンスできなくなる
DOMと見えるものが不一致状態で、開発することは無理。
そんなものを一々、管理していられない
212 = :
ときと場合によるとは思うけど
一般的に↓の(B)みたいにkansu2を参照できる範囲を関数内関数を使って必要最低限に限定するのは
good practice? bad practice?
//(A)
$(function() {
function kansu1() {
$('#div').click(kansu2);
....
}
function kansu2() {....}
});
//(B)
$(function() {
function kansu1() {
$('#div').click(kansu2);
....
function kansu2() {....}
}
});
214 = :
クロージャの弊害があるから一般的には関数の入れ子はしないほうがいいと理解していい?
215 = :
$(function() {
var kansu1 = function() {...},
kansu2 = function() {...};
//* 必要に応じて
$('#div').click(fun.kansu2);
});
だろうけど
217 = :
jQueryUIで例えば、
$(function() {
$( "#draggable" ).draggable();
});
みたいに設定してドラッガブルとして使ったあと、それを解除する方法はありますか?
それ以降は動かせないようにしたいのです。
218 = :
>>217
フラグを立てたら?
220 = :
jQuery/jsで良く使う(使える)小技教えてください。
大小問いません。
個人的には文字列置換をよく使います。
223 = :
>>220
文字列置換は基本的なテクニックでないのか?
そんなんでいいなら while, call, apply, bind, handleEvent, closure, bubbling ... いくらでもあるんだが
224 = :
jquery初心者です。
jqueryとDom操作の違いがいまいち理解できません。
調べれば調べるほど分からなくなってしいました。誰か、おバカさんに分かりやすく説明していただけないでしょうか。
225 = :
DOM操作・・・ブラウザが標準で持ってる機能
手続き型風で条件分岐が多く冗長。
jQuery・・・DOM操作を簡単に記述できるようにしたライブラリ
関数型風で条件分岐も少なく短く書くことが出来る
改良されている反面、速度が少し落ちるが、
問題にならない程度の速度低下で、開発効率を上げることが出来るとも言える。
226 = :
>>225
ありがとうございます。
何となく、理解できたかもです
227 = :
>>225だけ読むとjQueryにはメリットしかないかのような評価だな
jQueryには問題になるデメリットは全くないのか?
228 = :
>>227
特に無いだろうな
JavaScriptと併用で書けるし
229 = :
>>227
デメリットならあるだろ。
gzip圧縮時で34.5KBの転送量が必要になる。
ただし初回アクセス時のみでgoogleのCDNなどを使うことも出来る。
230 = :
jQueryは要素ノード以外の操作が基本出来ないからDOM APIに慣れると歯がゆく感じる事が結構あるなー
231 = :
>>230
テキストノードも触れる。
ついでに言うとテキストノードに触ることはあまりない。
jQueryはDOM APIとは発想が違うんだよ。
jQueryはCSSと同じようなものと考えたほうがいい。
処理を行うのではなくて、セレクタに対してどういう
効果を与えるかという定義を記述する。
なので、正しく使うとバグを大きく減らせる。
232 = :
> ついでに言うとテキストノードに触ることはあまりない。
おまえの中ではそうなんだろうな
233 = :
>>232
じゃあお前の中ではどうなんだ?
どういうときに使うのか言ってみろ。
念の為に言っておくけど、テキストノードをセレクタとして使用する話だからな。
セレクタで引っ張ってきたノードの中のテキストデータを変更することは
jQueryでも簡単にできる。その点に対してはDOM APIと全く変わりない。
234 = :
>>231
> テキストノードも触れる。
触れるってどういう風に?
text()はテキストノードを上書きするだけでテキストノード自体を操作はしてなかったよね
<p>a<span>b</span>c</p>
"c"のテキストノードを参照を失わずに値だけ書き換えることが出来る?
235 = :
テキストノードに触ることってないだろ?
大半はセレクタで対応できる
というか、何やってんの?
236 = :
>>234
> "c"のテキストノードを参照を失わずに値だけ書き換えることが出来る?
同じことをDOM APIでやって見せて
237 = :
>>235
http://js.studio-kingdom.com/jquery/traversing/contents
テキストやHTMLコメントを含む子要素を取得します。
.children()との違いは、テキストノード、コメントノードも対象とする点です。
238 = :
jQueryはテキストノードを触れないわけじゃなくて
テキストノードに対するセレクタが存在しないだけ。
触るだけならcontentsでできる。
jQueryセレクタ = CSSセレクタであるため
CSSセレクタにテキストノードへのマッチ機能が
無いことによるCSSの制約
239 = :
>>233
> 念の為に言っておくけど、テキストノードをセレクタとして使用する話だからな。
セレクタで参照するのは要素ノードだけだろうにテキストノードを参照するのは具体的にどういうセレクタを書くつもりなんだ?
> セレクタで引っ張ってきたノードの中のテキストデータを変更することは
> jQueryでも簡単にできる。
Selectors APIにテキストノードを参照する機能などない
テキストノードを参照できるのはXPathぐらいだぞ
240 = :
>>236
document.querySelector('p').lastChild.data = 'hoge';
件の人はテキストノードを操作したことがないんじゃないかな
jQueryにはdataプロパティ相当がないし、splitText,appendData...その他諸々もないよね
241 = :
>>239
> セレクタで参照するのは要素ノードだけだろうにテキストノードを参照するのは具体的にどういうセレクタを書くつもりなんだ?
俺に聞くな。
俺は
> ついでに言うとテキストノードに(セレクタとして)触ることはあまりない。
って言ってるんだ。
242 = :
>>240
> document.querySelector('p').lastChild.data = 'hoge';
それ(セレクタとして使用しない)でいいなら、
$('p').last()[0].data = 'hoge';
これで十分だろw
243 = :
> ついでに言うとテキストノードに(セレクタとして)触ることはあまりない。
セレクタでテキストノードに触れるといっているのと同義じゃね?
244 = :
何通りも方法はあるけど何を言いたいのかがよく解かんない
245 = :
>>243
ぜんぜん違う。
jQuery(DOMのquerySelectorでも同じ)は、CSSセレクタを使うのだから
CSSセレクタにテキストノードへのセレクタがない以上どちらも
CSSセレクタでノードの抽出はできない。
そして取得した要素単体に対する操作はjQueryでもDOMでも同じように
出来るのだから同じようにすればいいだけ。
246 = :
>>242
> $('p').last()[0].data = 'hoge';
いやあの、思いっきりDOM APIを使っておいてドヤ顔されても反応に困るんだけど...
>>230からの反証の流れわかってる?
247 = :
>>245
セレクタエンジンだけに限定して比較検証してるのはおまえだけだぞ
APIレベルで比較しろ
248 = :
>>246
あの? なんでDOM APIを使ったら駄目なんですか?
jQueryはDOM APIにはない機能を追加するもので
DOM APIを置き換えるものじゃないんですけど?
例えば
$(el).click(function() {
$(this).hide() ← このthisはDOM要素なんですが?
});
249 = :
>>248
jQueryのデメリットが論点だったのでは?
この流れであなたの返答は流れに反していると思うのですが
jQueryはテキストノードを操作出来ない⇒jQueryでもテキストノードを触れる⇒どうやって?⇒dataプロパティ⇒DOM APIでは?⇒なぜDOM APIを使ってはダメなんですか?
250 = :
「jQueryでも簡単にできる」と豪語しておいて、相手のコードにあったdataプロパティを流用しただけのお粗末な返答が返ってくるというね
類似してるかもしれないスレッド
- + JavaScript & jQuery 質問用スレッド vol.8 + (1001) - [98%] - 2019/2/9 14:00
- + JavaScript & jQuery 質問用スレッド vol.7 + (701) - [98%] - 2022/12/19 17:15
- + JavaScript & jQuery 質問用スレッド vol.7 + (993) - [98%] - 2017/11/10 8:15
- + JavaScript & jQuery 質問用スレッド vol.6 + (980) - [98%] - 2016/11/20 14:31
- + JavaScript の質問用スレッド vol.95 + (1001) - [72%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.75 + (1001) - [72%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.85 + (1001) - [72%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.135 + (1002) - [70%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.105 + (1001) - [70%] - 2013/5/20 4:45
- + JavaScript の質問用スレッド vol.125 + (1001) - [70%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [70%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.93 + (1001) - [70%] - 2011/12/10 18:31
トップメニューへ / →のくす牧場書庫について