X



jQuery 質問スレッド vol.8
■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2017/10/23(月) 06:31:18.14ID:???
JavaScriptでDOM用ライブラリであるjQueryのスレです。
次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

このスレはjQueryやjQuery UIの使い方やjQueryプラグインの作り方を質問するスレです。
jQueryを使って作る側のスレであって、こんなプラグインありませんか?と聞くスレではありません。
そういうのは自分で探してください。
ろくにサポートもされてなさそうな野良プラグインの使用はおすすめしません。

JavaScriptの質問は関連スレで質問して下さい。

■前スレ
jQuery 質問スレッド vol.7
https://mevius.5ch.net/test/read.cgi/hp/1478055094/

■関連スレ
JavaScript の質問用スレッド vol.130
https://mevius.5ch.net/test/read.cgi/hp/1501503056/
ECMAScript デス 6
https://mevius.5ch.net/test/read.cgi/tech/1483332914/
JavaScript ライブラリ総合質問所 vol.5
https://echo.5ch.net/test/read.cgi/hp/1465399470/
0779Name_Not_Found
垢版 |
2018/03/31(土) 22:25:10.60ID:???
×そういう変数を作って
○そういう関数を作って

でした
0780Name_Not_Found
垢版 |
2018/03/31(土) 23:31:59.66ID:???
よくわからんがリテラルにすればいいのでは
0781Name_Not_Found
垢版 |
2018/04/01(日) 01:23:31.55ID:???
追加で質問です。変数とコンポーネントの紐付け
jQueryなどのJavaScriptライブラリやフレームワークを
使わない場合はどうやるのでしょうか?
その方法があるとして、jQueryにも応用できますか?
0783Name_Not_Found
垢版 |
2018/04/01(日) 02:55:03.88ID:???
>>780
リテラルとは何のことでしょうか

>>781
別人ならもっと別人らしく書いてください

>>782
ありがとうございます
読んでみます
0784Name_Not_Found
垢版 |
2018/04/01(日) 12:01:32.75ID:???
>>782の記事を読んでいますが
未知のパラダイムの洪水で混乱してきました
素直にデータバインディングライブラリの勉強した方がいいパターンですねこれは・・
0785Name_Not_Found
垢版 |
2018/04/01(日) 16:40:25.05ID:???
だからそう言ってるだろ…
でもデータバインディングライブラリはいっぱいありすぎて逆に迷うな。
ある程度高機能になったらそこまでやるならもうvuejs使えよってなっちゃうからそれよりシンプルかが判断の分かれ目か。
https://github.com/gwendall/way.js/
とかどうかね?あとrivets.jsとか…
0786Name_Not_Found
垢版 |
2018/04/01(日) 18:24:28.48ID:???
>>785
確かに単機能でシンプルな方がいいですね
見てみます
ありがとうございました
0787Name_Not_Found
垢版 |
2018/04/01(日) 22:25:26.85ID:bFR0K0RK
以下のような、横に伸びるtableのtdで同じ文字列が連続した場合
colspanでセルを結合するロジックを組みたいのですが
どのようにすれば実現できるか悩んでおります
<table>
<thead>
<tr>
<td>2018</td>
<td>2018</td>
<td>2019</td>
</tr>
</thead>
</table>
↓以下のように同データをcolspanとして結合するロジックが作りたいです
   なおデータはソートされております。
<table>
<thead>
<tr>
<td colspan="2">2018</td>
<td>2019</td>
</tr>
</thead>
</table>

よろしくお願いします
0788Name_Not_Found
垢版 |
2018/04/02(月) 01:08:54.96ID:???
>>787
過去スレに似たような話が出たけど
なに? コピペ? また同じ話したいの?
0790Name_Not_Found
垢版 |
2018/04/02(月) 05:13:23.21ID:???
$('td').each (function() {
var prev = $(this).prev();

if ( prev.text() === $(this).text() ) {
var num = prev.attr('colspan');
// 3連続以上にも対応
num = num ? parseInt(num) + 1 : 2;

$(this).attr('colspan', String(num));
prev.remove();
}
})

データがソートされてるなら、自分と直前(兄、prev)の要素が、
同じかどうか確かめればよい

兄が自分と同じなら、兄を削除して、自分にcolspanを付ける

セレクターには、id を付けて、絞り込んで下さい。
<tr> が、2行以上あると、誤動作するかも
0792Name_Not_Found
垢版 |
2018/04/02(月) 21:57:33.68ID:???
>>790
> <tr> が、2行以上あると、誤動作するかも
普通複数あるだろw
0793Name_Not_Found
垢版 |
2018/04/03(火) 02:20:06.50ID:???
表のヘッダーだけじゃないのか?

表のデータも、1つのセルにまとめるのか?
0795790
垢版 |
2018/04/03(火) 07:13:51.61ID:???
<tr><td>A</td><td>A</td><td>B</td></tr>
<tr><td>B</td><td>C</td><td>C</td></tr>

>>790
で、<tr> が、2行以上あると誤動作するかもって言うのは、
上の例で、1行目のB と、2行目のB がつながってしまうから

これを避けるには、1行ずつ分けて、処理すべき
0797787
垢版 |
2018/04/03(火) 12:34:02.34ID:???
>>790
動作を確認できました
超リスペクトです
ありがとうございます!

他の方が指摘している部分で問題が無いか確認しつつ、参考にさせて頂きます
0798787
垢版 |
2018/04/03(火) 12:37:32.12ID:???
>>792
自分はtrごとにclassを付けて対応しました

あくまでヘッダで使いたかったので煩くはならなかったですが、10行超えるような行で適用すると泥臭くなりそうだとは思いました
0799790
垢版 |
2018/04/03(火) 13:03:35.87ID:???
複数行にも使うの?

複数行の場合は、
>>795
の例では、2行目のB に、colspan="2" が付くから、ダメだろ

1行ごとに一旦、処理を切らないといけない

>>789
は、難解すぎて、訳がわからない
0800790
垢版 |
2018/04/03(火) 13:58:23.51ID:???
>>790
を複数行にも対応できるように、修正した

$('td').each (function() {
var prev = $(this).prev();
// そのtr の、最初のtd は、処理しない。continue
if (prev.length === 0) { return true; }

if ( prev.text() === $(this).text() ) {
var num = prev.attr('colspan');
num = num ? parseInt(num) + 1 : 2;

$(this).attr('colspan', String(num));
prev.remove();
}
})
0801Name_Not_Found
垢版 |
2018/04/03(火) 22:47:59.68ID:???
>>799
> は、難解すぎて、訳がわからない
縦横量対応 + jQueryプラグイン化してあるからねw

短いのであれば、こっちにあった(少しだけ変更してみた)
コードの説明はリンク先へ
http://toro.2ch. sc/test/read.cgi/hp/1452081417/732

$('td').attr('colspan', function() {
 return $(this).text() === $(this).prev().text() ? null : 1;
}).filter('[colspan]').attr('colspan', function() {
 return $(this).nextUntil('[colspan]').length + 1;
}).end().remove(':not([colspan])');
0802Name_Not_Found
垢版 |
2018/04/03(火) 22:50:55.72ID:???
そういや >>789は更に最初からcolspanがある場合にも対応していたはず
0803787
垢版 |
2018/04/04(水) 07:05:08.76ID:???
色々と参考コードをありがとうございます
799さんのコードは理解が難しかったですが、改造案件ではこういうのをワンサカ見るんだろうなと思うので理解できるよう努力したいと思います
0804Name_Not_Found
垢版 |
2018/04/09(月) 12:47:31.90ID:???
何度も同じjQueryオブジェクトを使う時には
今でも一旦変数に代入した方がいいのでしょうか?
$document = $(document)
のように。
パフォーマンスから言えば代入した方がいいはずですが、
もう気にしなくていいような気もします
0806Name_Not_Found
垢版 |
2018/04/09(月) 12:58:54.00ID:???
マシンが高性能になっているので
マイクロ秒レベルのパフォーマンスの違いなんて気する時代ではないのでは?
という意味です
0807Name_Not_Found
垢版 |
2018/04/09(月) 12:59:41.42ID:???
というか1マイクロ秒の違いすらあるのか怪しいですよね・・
0808Name_Not_Found
垢版 |
2018/04/09(月) 13:06:49.49ID:???
documentならいいだろうが複雑でパフォーマンス考慮のないCSSセレクタ書くとマイクロ秒オーダーじゃ済まないよ
0809Name_Not_Found
垢版 |
2018/04/09(月) 13:28:09.90ID:???
確かに引数に文字列を渡す場合はパース処理が入るので何度も実行したくはないですね
引数がDOMオブジェクトの場合は許容範囲の感じがします
場合によりけりということでしょうか
ありがとうございました
0810Name_Not_Found
垢版 |
2018/04/09(月) 14:24:00.71ID:???
みんなjqueryオブジェクトには$付き変数つかってる?
それとも気にしない派? おれは気にしない派
0811Name_Not_Found
垢版 |
2018/04/09(月) 15:20:31.49ID:???
使ってる。
生のelementも使うから。
0812Name_Not_Found
垢版 |
2018/04/09(月) 21:25:45.70ID:???
>>808
> documentならいいだろうが複雑でパフォーマンス考慮のないCSSセレクタ書くとマイクロ秒オーダーじゃ済まないよ

具体例あげられますか?
0813Name_Not_Found
垢版 |
2018/04/09(月) 23:40:41.46ID:???
そこそこの規模のDOMを用意し、CSSセレクタでパフォーマンスの観点から避けるべきと言われていること(ユニバーサルセレクタとか子孫セレクタとか一般兄弟セレクタとか)をあえてすべて踏む長めのセレクタをぶっこんでトライ!
まさか計測まで人にやらせるつもりじゃねーだろうな
0814Name_Not_Found
垢版 |
2018/04/10(火) 08:08:51.15ID:???
>>813
計測はこっちでやってやるよ
お前は黙ってセレクタを書け
0815Name_Not_Found
垢版 |
2018/04/10(火) 08:47:13.97ID:???
>>814
じゃ黙ってDOM用意しな。セレクタはDOM依存だからな。
0816Name_Not_Found
垢版 |
2018/04/10(火) 09:25:25.85ID:???
セレクタの遅さはDOM依存じゃないが?

そんなにDOM用意しろって言うなら
ほらよ。遅いセレクタ書いてみなw
<span>a</span>
0817Name_Not_Found
垢版 |
2018/04/10(火) 09:52:15.66ID:???
DOM依存であることを示してるように見えるのだが…
0818Name_Not_Found
垢版 |
2018/04/10(火) 10:00:04.53ID:???
>>817
オレなら >>816 のaを選択するのにたっぷり0.1秒はかかるセレクタを書くことができるッ!
しかもそいつはつい先日納品したプロジェクトで使用したばかりのやつだッ!
0820Name_Not_Found
垢版 |
2018/04/10(火) 15:08:18.86ID:QSJyPyVl
>>804
2回以上使う場合で、その間、変化が無いなら、変数に入れて使うべき

変数に入れずに、2回書いたら、その間にDOM に、
何か変化があるのかも、と思ってしまう

変化が無いなら、変数に入れた方が、わかりやすい
0821Name_Not_Found
垢版 |
2018/04/10(火) 18:12:44.89ID:???
$(event.currentTarget)
とかもわざわざ変数に入れるんですか?
0822Name_Not_Found
垢版 |
2018/04/10(火) 18:15:49.80ID:???
コールバックの中でvar $this = $(this);とか稀によく見る
0825Name_Not_Found
垢版 |
2018/04/11(水) 00:05:37.68ID:???
>>821
入れてもいいってだけで基本的に変数に入れない。実行速度に問題があって
変数に入れると速度の問題が解決するって場合だけ入れる。

> $(event.currentTarget)
> とかもわざわざ変数に入れるんですか?
入れない

$(this)もそうだが、カッコの中がDOM要素の場合は、セレクタよりも遥かに
速度が早いので変数に入れても問題が有る速度を解決することにはつながらないだろう

それから変数に入れる前にチェインでつなぐことを考えたほうがよい。
チェインするのは変数に入れるのと同じ効果がある

またそもそもチェインすらいらないかもしれない
例えばこういう書き方もできる

http://api.jquery.com/jQuery/#entry-examples-1

$( "<div/>", {
  "class": "test",
  text: "Click me!",
  click: function() {
    $( this ).toggleClass( "test" );
  }
})

http://api.jquery.com/css/#css-properties
.css({ "background-color": "#ffe", "border-left": "5px solid #ccc" })

http://api.jquery.com/attr/#attr-attributes
$( "#greatphoto" ).attr({alt: "Beijing Brush Seller", title: "photo by Kelly Clark"});
0826Name_Not_Found
垢版 |
2018/04/11(水) 00:09:38.45ID:???
この使い方も重要

http://api.jquery.com/attr/#attr-attributeName-function

$( "#greatphoto" ).attr( "title", function( i, val ) {
 return val + " - photo by Kelly Clark";
});


1. title属性を取得して
2. title属性を加工して
3. title属性を再設定する
ということを変数無しでできる

引数に関数を渡すことで、変数に一旦入れる必要がなくなる。

↓つまりこんなコードを書かなくて良くなるということ

var $greatphoto = $("#greatphoto");
var title = $greatphoto.attr("title");
title = title + " - photo by Kelly Clark";
$greatphoto.attr("title", title);
0827Name_Not_Found
垢版 |
2018/04/11(水) 01:20:33.44ID:???
>>825-826
ありがとうございます
知らない方法ばかりです
関数を渡してフィルタみたいな処理ができるのは良さげです
変数をなるべく使いたくないっていうのは、
関数型っぽく書きたいっていうところから来てるんですよね
0828Name_Not_Found
垢版 |
2018/04/11(水) 08:44:48.33ID:???
>>827
名前を使いたくない ってのが一番大きい理由だと思うよ

おれ自身はチョイ関数でもバンバン定義する派だけど、使いたくない理由もわかる
0829Name_Not_Found
垢版 |
2018/04/11(水) 20:35:22.78ID:???
>>820
804ではないが参考になった
以前速度差ないとのことで変数に入れずにいたが
そういうことならわかりやすくていいですね
0830Name_Not_Found
垢版 |
2018/04/11(水) 20:51:09.83ID:???
普通はそう考えるものだよ
0831Name_Not_Found
垢版 |
2018/04/11(水) 22:15:06.54ID:???
変数使わないべき、それ以外認めんと徹底抗戦してたのいたからな
0832Name_Not_Found
垢版 |
2018/04/11(水) 22:26:30.44ID:???
>>820が変数に入れるべきと言った途端

> 2回以上使う場合で、その間、変化が無いなら、変数に入れて使うべき

↓これだよw

> 変数使わないべき、それ以外認めんと徹底抗戦してたのいたからな
0834Name_Not_Found
垢版 |
2018/04/11(水) 22:38:28.88ID:???
>>820
> 変数に入れずに、2回書いたら、その間にDOM に、
> 何か変化があるのかも、と思ってしまう
>
> 変化が無いなら、変数に入れた方が、わかりやすい

どういうこと?
変数に入れた所で、変化するでしょ?

$id = $('#id')
$id.text(123);
$id.text(); // 変数に入れたのに123に変わってる

jQueryにDOM要素の状態をさせるメソッドは
たくさんあるけど、どれも変数に入れても変化するものばかり

唯一の例外はremoveしても(DOMの状態は変化しているが)
jQueryオブジェクトには参照が残ってるってことぐらい
それだけなのに"変化がないなら変数に入れたほうがわかりやすい"は大げさ
0835Name_Not_Found
垢版 |
2018/04/11(水) 23:05:45.89ID:???
変数に入れてもDOMは変化してる
変数に入れていれば、その間になにも変化がないように言い方は
誤解のもとでしかないのでやめたほうが良い

$ul = $('ul')
console.log($ul.children().length) // 5
$ul.children().remove();
console.log($ul.children().length) // 0

--------

$ul = $('ul')
console.log($ul.children().length) // 5
$ul.append('<li>')
console.log($ul.children().length) // 6

--------

$ul = $('ul')
console.log($ul.parent().attr('id')); // undefined
$('#id').append($ul)
console.log($ul.parent().attr('id')); // id
0836Name_Not_Found
垢版 |
2018/04/11(水) 23:31:22.86ID:???
そりゃ再代入すりゃ変わるよ
0837Name_Not_Found
垢版 |
2018/04/12(木) 00:18:42.92ID:???
いや、再代入してないよw

----はただの区切り
別々の話ね。
0838Name_Not_Found
垢版 |
2018/04/12(木) 00:22:45.40ID:???
>同じjQueryオブジェクトを使う時には

とあるのに何入れ替えてるんだよw
0839Name_Not_Found
垢版 |
2018/04/12(木) 00:25:21.80ID:???
変数に入れても、
・DOM要素の内容は変わる
・DOMの構造も変わる
・DOM要素の参照は残ってる

って所かな?
jQueryとか関係なく

var elm = document.getElementById('id'),

って書いてるのと同じ。
ID=idをdocumentのDOMツリーからremove()しても、
elmという参照は残ったまま

逆に言えば、参照は残ったままだけど、
DOM要素への変更は反映される。jQueryでも同じ
0840Name_Not_Found
垢版 |
2018/04/12(木) 00:27:49.39ID:???
>>838
めんどくせーな。
これでお前でも理解できるだろ?
変数に入れてもDOMは変化するんだって

例1

function exp1() {
 var $ul = $('ul')
 console.log($ul.children().length) // 5
 $ul.children().remove();
 console.log($ul.children().length) // 0
}

例2

function exp2() {
 var $ul = $('ul')
 console.log($ul.children().length) // 5
 $ul.append('<li>')
 console.log($ul.children().length) // 6
}

例3

function exp3() {
 var $ul = $('ul')
 console.log($ul.parent().attr('id')); // undefined
 $('#id').append($ul)
 console.log($ul.parent().attr('id')); // id
}
0841Name_Not_Found
垢版 |
2018/04/12(木) 04:25:24.75ID:???
変数に入れておけば、異なる参照を指すことはない。
このリストが、別のリストに変わったりしない

変化する場合でも、その要素・コンテキスト以下・子孫要素しか変わらない

祖先の要素が変わって、別の要素を指すようになったりしないから、
意図がわかりやすい
0842Name_Not_Found
垢版 |
2018/04/12(木) 21:01:52.79ID:???
>>841
よく考えてほしいんだけどさ、

一行目、私は○○にデータを書き換えます。
二行目、○○にデータが書き換わった状態であってほしい

これの方が直感的だよね?
0843Name_Not_Found
垢版 |
2018/04/12(木) 21:36:58.46ID:???
>>840
そんなことは書かれる前からわかっとるわ、基本だろ
そういうことでなくて質問と>>838はDOMを変化させない前提だろうよ
パフォーマンス云々言ってるのだし
0844Name_Not_Found
垢版 |
2018/04/12(木) 22:03:57.54ID:???
だから変数に入れてもDOMは変化しますよって言ってるんだが?


変数に入れることで、どういう勘違いを
あなたはしてるのですか?っていう話
0845Name_Not_Found
垢版 |
2018/04/12(木) 22:06:27.90ID:???
順を追って説明しないと理解できてなさそう

1. DOMを変化させない前提
2. 変数に入れないと、DOMが変化するように見える
3. 変数に入れると、DOMは変化しないように見える
4. でも変数に入れても実際はDOMは変化する
5. つまり3は勘違い。変数に入れてるのをみてDOMが変化しないように見えたら、それは目が悪い。
0846Name_Not_Found
垢版 |
2018/04/12(木) 22:09:01.76ID:???
久しぶりに除いたが「変数使わないべき、それ以外認めん」の人がまた勘違いで話捻じ曲げて強引に押し通そうとしてるのか
0847Name_Not_Found
垢版 |
2018/04/12(木) 22:10:00.79ID:???
その話は知らんけど、>>845に何か物申すこと有る?
0848Name_Not_Found
垢版 |
2018/04/12(木) 22:10:05.44ID:???
おっと、覗いただな、失敬
0849Name_Not_Found
垢版 |
2018/04/12(木) 22:16:53.75ID:???
× 変数に入れずに、2回書いたら、その間にDOM に何か変化があるのかも、と思ってしまう
○ 変数に入れても、2回書いた時、その間にDOMに何か変化があることがある。


× 変数に入れるとDOMは変化しない
○ 変数に入れるとDOMを変化させてもDOM要素への参照は残っている

なんで正しい説明ができないんだろう?
0850Name_Not_Found
垢版 |
2018/04/12(木) 22:18:43.59ID:???
>>844
問題文をもう一度読もうか
先ずはそこからだ
0851Name_Not_Found
垢版 |
2018/04/12(木) 22:19:13.72ID:???
そして、これを踏まえて説明すると、
jQueryではメソッドチェーンでつなぐことで
変数に入れなくても、変数に入れたのと同じ状態を作ることができる。
0852Name_Not_Found
垢版 |
2018/04/12(木) 22:20:23.39ID:???
>>850

問題文ってこれ?

> 804 名前:Name_Not_Found[sage] 投稿日:2018/04/09(月) 12:47:31.90 ID:???
> 何度も同じjQueryオブジェクトを使う時には
> 今でも一旦変数に代入した方がいいのでしょうか?
> $document = $(document)
> のように。
> パフォーマンスから言えば代入した方がいいはずですが、
> もう気にしなくていいような気もします


じゃああんたはその次のレスを読もうか?
そのレスが間違ってるって話をしてるんだから
0853Name_Not_Found
垢版 |
2018/04/12(木) 22:23:57.47ID:???
変数に入れたらDOMに変化がないと思うだろ!

いや、思わんね(笑)

これだけの話
0854Name_Not_Found
垢版 |
2018/04/12(木) 22:32:40.68ID:???
ちなみの最初の話をすると

$document = $(document)
変数に代入しなくても、document変数に参照が残ってる。

$element = $(this)
変数に代入しなくても、this変数に参照が残ってる

element = document.getElementById('id')
$element = $(element)
変数に代入しなくても、element変数に参照が残ってる


わけで、毎回 $(documet)、$(this)、$(element) を実行しても
(DOMではなく参照が)変わらないことは保証される
0855Name_Not_Found
垢版 |
2018/04/13(金) 05:44:33.82ID:???
一般的にイベントのデレゲーションは負荷軽減に繋がると言われていますが
$(document).on('click','.hoge a',fn)
のようにセレクタで指定している場合、
クリックのたびにイベントが起きた要素がセレクタと一致するかを調べるので
結構負荷が高くなるのではないかと思いました
$('.hoge a').on('click',fn)
のように要素に直接リスナを登録した場合、セレクタの解釈はリスナの登録時だけなので、負荷は小さくなるのでは?
ただデレゲーションの場合、リスナ登録時に存在しないDOMのイベントも捕捉できるという意味もあるので
簡単に置き換えることはできませんが
0856Name_Not_Found
垢版 |
2018/04/13(金) 08:15:14.19ID:???
表に、100セルがある場合、
各セルに、イベントハンドラーを付けると、100個になる

これらの処理が似ている場合には、
表に、1つのイベントハンドラーだけを付けて、
各セルの座標値を、計算した方がよい
0858Name_Not_Found
垢版 |
2018/04/13(金) 20:56:56.13ID:???
>>855
負荷とひとまとめにしてるけど、
典型的な速度を取るかメモリを取るか問題やね

デレゲーションを使うと、
1. イベントハンドラの設定が1回ですむ(速い)
2. イベントハンドラが一つで済む(メモリ少ない)
3. イベント発生ごとに発生した要素のチェックが必要(遅い)
4. 要素を増やしてもイベントハンドラの設定は不要(速い)

要素ごとにイベントハンドラをつけると
1. イベントハンドラの設定が要素の数だけ必要(遅い)
2. イベントハンドラが複数必要(メモリ多い)
3. イベント発生しても発生した要素のチェックが不要(速い)
4. 要素を増やす時イベントハンドラの設定が必要(遅い)

イベントハンドラの分メモリが必要と言っても関数の中身自体は共通化できるので
イベントハンドラを持っていますよーという情報のメモリ
またセレクタに一致しているかどうかは、比較的最近のブラウザなら
Element.matchesメソッドがDOM APIに追加されてるのでさほど遅くないはず

で結局の所トレードオフ問題でどちらが良いかはやってみないとわからないし
環境によって変わるし、DOMの構造によっても変わるだろうし、
俺なら気にせずデレゲーション使うだろうな
0859Name_Not_Found
垢版 |
2018/04/13(金) 23:13:06.28ID:???
>>826
の、上の程度ならもちろん変数使わないが
実際複雑になったり長くなったりすると下に近くするな
好みだが深くするのが嫌なので
0861Name_Not_Found
垢版 |
2018/04/14(土) 10:42:30.74ID:???
>>857
コードまで書いて一生懸命答えてても元文読み違えてたら全て無駄
の典型的パターンだよな
0862Name_Not_Found
垢版 |
2018/04/14(土) 13:36:33.13ID:???
>>859
同じく。↓とか

$('#hoge').children('li').eq(計算).children('span').text(なんたら).attr('hage', かんたら);
0863Name_Not_Found
垢版 |
2018/04/14(土) 13:57:12.43ID:???
$('#hoge')
 .children('li').eq(計算)
 .children('span').text(なんたら).attr('hage', かんたら);

って書けば良い
改行できない病かなにかか?
0864Name_Not_Found
垢版 |
2018/04/14(土) 16:45:43.21ID:???
こりゃ酷いな
全然意味わかってないことにワロタ
0865Name_Not_Found
垢版 |
2018/04/14(土) 19:06:18.76ID:???
じゃあその意味を説明しろよw
0866Name_Not_Found
垢版 |
2018/04/14(土) 19:33:42.67ID:???
>>864
むしろ流れ的にどうやったら改行の問題と読んだのかそのプロセスが知りたい
学生のテスト対策のヒントになるかもw
0867Name_Not_Found
垢版 |
2018/04/14(土) 22:21:32.83ID:???
いや改行の問題なんて言ってないだろw
改行を入れることで、読みやすくできるという話だよ

変数に入れればいいって言ってるやつだって
メソッド実行のたびに変数にだって入れないだろ?

「わかりやすい単位で変数に入れる」というはずだ。
だからそのわかりやすい単位で改行をいれればいいだけ
0868Name_Not_Found
垢版 |
2018/04/14(土) 22:23:03.64ID:???
>>859
ライブラリなどのサンプル見るとほとんどvarにセットしてる
0869Name_Not_Found
垢版 |
2018/04/14(土) 22:25:40.67ID:???
>>867
もういいよ、無理すんなって
益々墓穴掘ってる
0871Name_Not_Found
垢版 |
2018/04/15(日) 03:53:08.92ID:???
$('#hoge').children('li').eq(計算).children('span').text(なんたら).attr('hage', かんたら);
を変数に入れるってどうするつもりだったんだろうか?

var $li = $('#hoge').children('li')
var $span = $li.eq(計算).children('span')
$span.text(なんたら).attr('hage', かんたら);

こうか?

$('#hoge').children('li')
 .eq(計算).children('span')
 .text(なんたら).attr('hage', かんたら);

ならこれで良い気がするな。
変数に入れるバージョンから、変数を取り除いただけ

それよりも>>863の方がわかりやすい気がするのは
行の最初に対象とするターゲットが来てるからかな
0872Name_Not_Found
垢版 |
2018/04/15(日) 07:02:06.07ID:???
eq: function( i ) {

var len = this.length,
j = +i + ( i < 0 ? len : 0 );
return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );

これは、jQuery のeq のソースコードだが、
これぐらい少なくても、this.length を2回使わない

同じものなら、変数に入れる。
その方が保守しやすく、最適化しやすく、少し速いかも
0873Name_Not_Found
垢版 |
2018/04/15(日) 09:47:01.46ID:???
>>871
計算やなんたらやかんたらを変数かと
0874Name_Not_Found
垢版 |
2018/04/15(日) 10:38:31.31ID:???
ここは相変わらず、jQuery君が他人に噛みつき、荒らし回ってるんだな
0876Name_Not_Found
垢版 |
2018/04/15(日) 11:36:01.24ID:???
>>875
スレタイのどこに「他人に噛みつき、荒らし回る」と書いてある?
0877Name_Not_Found
垢版 |
2018/04/15(日) 13:25:12.42ID:???
>>873

>>826の話とずれてる。
>>826は処理対象を変数に入れるって話
設定値を変数に入れるって話じゃない
0878Name_Not_Found
垢版 |
2018/04/15(日) 15:45:11.54ID:???
どうでもいい話をいつまで引っ張るんだか
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況