jQuery 質問スレッド vol.8
■ このスレッドは過去ログ倉庫に格納されています
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/ >>90 javascriptでサニタイズする関数は無いよ 何が目的なのか解らないけど $('<hoge>').text().html() で特殊文字はエスケープ出来るけど >>92 ブラウザ側でsocket.ioで受信したデータをサニタイズして表示しようとしています。 $('<hoge>').text().html()の使い方についてですが、 <hoge>の部分は何でも良くて、textメソッドにサニタイズしたいタグが含まれる 可能性のある文字列を入れると戻り値としてサニタイズされた文字列が返るという ことでしょうか? ほらくそ、真面目にサニタイズとかに答えるから サニタイズ言うなキャンペーン読んでこい 今後サニタイズ言うな 正しい言葉で質問し直せ でないと答えられんだろうが サニタイズ言うなキャンペーン読んできましたが、 結局どうしたらいいのか良く分かりません。結局どうすればいいのですか? サニタイズ言うなということは、HTMLタグを無効化するとか言えばいいのですか? 無理に難しく言わずに用語を知らないのなら、 どうしたいのかを書けばいい socket.ioでブラウザ(クライアント側)に送られてくるデータは他のユーザーが 送信したデータなのでHTMLタグなどを含んでいます。 (リアルタイムチャットサイトを作っています) なので、受信したデータのHTMLタグなどを無効化したいです。 そういうのは無効化なんていわないんだよ。まあいいや まずな、ブラウザに送られてくるデータっていうのは サニタイズとか無害化とか無効化しようと考えるな。そのまま使え でだ、問題が有るときはそのデータを「画面に表示するときだけ」なんだよ 言ってる意味わかるか? 計算に使ったりメッセージを組み立てる時とか そういうときには、無効化する前のデータを使うってことだ。 そして一番最終段階、画面に表示するときにHTMLタグをタグとして表示するのではなく (無効化ではなく)文字列として表示すれば良いんだよ その場合にやるのは、<> という文字を < > に変換(HTMLエスケープ)するってことだ。 これが本当にお前がやりたいことだ。 無効化とかサニタイズという言い方じゃ、こういうことをしたいのかって分からんだろ? 例えば <> を消したり大文字に変換したとしても、HTMLタグとして表示されないわけで 目的(サニタイズ)は達成できてるとも言える。 それからJavaScriptにはURIエスケープは有るがHTMLエスケープはない 文字列置換で自分で作ることはできるが。そもそもそんなことをする必要がない。 なぜなら、jQueryであればhtml()メソッドを使ってデータを表示されるだけで 自動的にHTMLエスケープが行われるからだ 言葉が適切でなかったことを謝ります。 詳しく教えていただきありがとうございます。 jQueryも不要 要素作って textContentに設定するだけ (改行スタイルを CSS white-spaceで設定する) hとdivの関連性が崩れてる UIだとカスタマイズや変更が楽だしKBも対応してるんだよな UI使わないにしてもwhite-spaceなんぞ使わなくてもできるよ なんだ、<, > などの文字が、<, > に変換される、HTMLエスケープの事か DOM 操作とか、<script> タグなどは、気を付けた方がいい バリデーション、エスケープ、フィルタリング、サニタイズ 勘違いや境目や定義の曖昧さで紛らわしくなる場合がある >>96 がごもっとも ソース内に一箇所だけ書かれてる「class="ランダム英数字"」を 新規にwrap()追記する際にwrap('<a href...内に その「class="ランダム数字"」を記入することってできます? class="(.*?)"ですかね?でも貼り付けがわからず、、 同要素、クラス内の検索置換ってのは見つかるんだけど、 ソース全体から正規表現で拾ってきたものをある場所にペーストする、ってのがわからず、、 よろしくお願いします! ランダム英数字の定義で、[A-Za-z0-9_] なら、\w。 アンダーバーを含まないなら、[A-Za-z0-9] クラスを持つ、すべての要素から、半角英数字だけのクラスを取り出して、 最初の1つが見つかったら、return false; で、each 内から抜ける wrap については「jQuery, wrap/wrapAll/wrapInner」で検索して $( '[class]' ).each( function(){ if ( /^[A-Za-z0-9]+$/.test( $(this).prop('class') ) ){ console.log( $(this).prop('class') ); return false; } } ) > console.log( $(this).prop('class') ); www こっちに誘導されたんで来ました jQueryで別ファイルからヘッダとフッタを読み込みってことやったんですが、処理は上手く行っているようだが サーバーのファイルを更新してもjQueryで読み込むから日付チェックをしていないようで古いものがキャッシュから読まれてしまう こう言うの抑止する方法とかありませんか? 当方webに関しては殆ど素人です >>113 いまどうやってるかを書かないと エスパーするしかないと思う たとえば$.getでとってるなら cache: falseとか (日付チェックとは違うけど) >>114 すみません。ググったらなんとかなった $(function () { $.ajaxSetup({ cache: false }); }); 足したら直りました ちなみに、ここで動画管理のアプリ配っています(Windows10用) http://www7b.biglobe.ne.jp/ ~megatherium/ webは、ほぼ素人なので夜中に焦りましたわw すみません、質問です html内にボタンを設置し、そのボタンをクリックすると他のページからメールフォームを読み込むページを作成しているのですが、 メールフォームは読み込みこめたのですが、メールフォームに付いてる住所の自動入力のスクリプトが適用されません どのようにすればよいでしょうか? <!-- ボタン・インクルードスクリプト --> $('#*** a').click(function(){ $('#***').load('***.html #*** '); return false; }); <!-- 住所の自動入力スクリプト--> $(window).ready( function() { $('#postcode').jpostal({ postcode : [ #postcode' ], address : { '#address1' : '%3', '#address2' : '%4%5' } }); }); 当方、超初心者なので説明が下手かもしれませんがどうぞ宜しくお願いします そこまで初心者なら勉強しろ ここは自ら勉強するものが躓いたときに聞きに来るところであって コードを丸投げして直してもらうところではない それが嫌なら有料でやれ >$(window).ready( function() { 「$(document).ready()」と「$(window).load()」の違いが分からないのなら、以下を使う $(function() { // ここに処理内容を書く }); それに、これらは最初のページの読み込みに反応するだけで、 後から、非同期(Ajax)で読み込んだ部分には反応しない 自分で、one(), on() で、要素にイベントハンドラーを付けて、処理すれば? >>119 ありがとうございます!! 出来ました! jQuery というより javascript に関する質問なのですが、よろしくお願いします。 <select id="sel"> <option value="a">A</value> <option value="b">B</value> <option value="c">C</value> <option value="d">D</value> </select> <div id="img"></div> こんな感じのとき、#sel の選択中に A〜D に応じるイメージを #img に表示したいと思っていますが、 option に hover イベントを仕掛けてもうまく行かないように思います。 選択項目が変化していることを知る方法はありますでしょうか? $('#sel').change( function(){ hogehoge.. } ) はうまくいきます。 >>121 すいません。 <option>の閉じは</option>です。 >>121 正確に言うとDOMの話なんでJavaScriptの話じゃないけどな。 JavaScriptはブラウザ以外でも動く。ブラウザ特有のものはJavaScriptではない >>123 121, 122 です。それは失礼しました。 で、答えは? buttonをクリックしたら特定のdivの中にある画像をクリップボードにコピーしたいの ですが、jQueryあるいはJavaScriptで出来ますか? >>127 だけどごめん、画像ならできないかも やったことない >>121 根本的にUIに沿わない あくまでselectはセレクトボックス selectはUIじゃないぞ? UIはブラウザベンダーが決めてる。 HTMLとしてはselectは複数のoptionから選べるってだけの機能 そのUIをどう実装するかは関係ない またよくある手としてJavaScriptでselectをブラウザ標準から 拡張することもよくある話 なので>>121 はselect使うべき >>121 そういうのタッチデバイスで意味ないから >>131 そういうユーザ操作ひっくるめてUIでないの? >>125 Electron を使えば? Electronではじめるアプリ開発 ~JavaScript/HTML/CSSでデスクトップアプリを作ろう 野口 将人・倉見 洋輔、2017 この本を読めば? Electronでふと思い出したがVisualstudio codeって使い心地どうすか 俺が描くのってHTMLCSSjQueryだけなんだけど >>137 起動がやや重い(Atomよりはマシ)が起動後はスムーズで悪くない VS Code で、Windows で、Ruby も楽々。 コンソール画面には、PowerShell Emmet, SASS, MD やら、これが無料で、笑いが止まらない www 【Microsoft Tech Summit】APP017 PowerShellの新しい相棒 Visual Studio Code https://www.youtube.com/watch?v=0zo6z0yHrGk .aaaに動的に付けたclass(bbb ccc ddd・・・)の削除や付け直しを一括でしたく $('.aaa').removeClass('bbb ccc ddd・・・'); を $('.aaa').removeClass().addClass('aaa'); とするのはあり? >>140 それだと静的に付けたclassまで消えちゃうじゃん >>142 そうなんだけど・・・の管理が面倒で 変更の度にそこも付け加えなくてはならなくて 最初つけるclassは1,2個と少ないので楽かなと >>143 $('.aaa').removeClass(function(i, v){ return v.split(' ').slice(1).join(' '); }); こういう感じでもええんやで 一つの要素にJavaScriptからそんなに多くのクラスを 設定する必要が有ることがそもそも間違ってる >>144 aaaが必ずしも最初に来る保証がない場合は?↓とか >>145 UI含めてライブラリで勝手に付けられたりするからな >>147 ただ記事やブログ書いてるだけならそんないらんよ ちょっと特殊な場合だな ヒントだけ書くとスポーツやトラフィックや・・・ >>148 ライブラリで勝手につけられると言っても せいぜいbootstrapみたいに btn btn-primary btn-lg active ぐらいなもんだろ? 一つの要素に4つとかそのぐらいの数しかいらない これもbootstrapのCSSの設計上これだけいるってだけで、 JavaScriptから設定するクラスだとやっぱりそんなにいらないと思う まあ推測するに <div data-state="a"></div> <div data-state="b"></div> <div data-state="c"></div> <div data-state="d"></div> みたいにやればいいのに、classで <div class="a"></div> <div class="b"></div> <div class="c"></div> <div class="d"></div> こんな風にやろうとしてるんでしょ? だからe, f, g が増えたらリセットするために、e, f, gのクラスを消すように メンテナンスしなくちゃいけない!ってなってるんだと思うよ。 つまりやっぱり使い方が間違ってる。 前者のやり方であれば、当然data-stateを初期値に戻すだけでいい 管理が大変って今どうやってて何が大変なのか分からん。 var myTags = 'bbb ccc ddd'; で管理して $('.aaa').addClass(myTags); $('.aaa').removeClass(myTags); $('.aaa').toggleClass(myTags); とか普通に使うんじゃダメなの? >>153 myTagsをその都度変えるということ? data-はクセあるからな キャッシュの問題 CSSに反映されない $.hasDataはイベント有無で変わる classの方が楽で自然に書ける場合はある >>153 すでにbbbがあるか否かの判断がめんどくさくね? 質問はランダムに動的に追加されるclassだけを削除する方法 dataなんて言ってないだろ?w >>157 どうでもよくね? <div class="aaa ccc ddd" /> に $('.aaa').removeClass('bbb ccc ddd'); しても <div class="aaa" /> になるだけだろ?え、俺なんか勘違いしてる?? >>156 なんか勘違いしてね? jQueryのdataじゃなくて data-x属性だぞ 普通にCSSで使える [data-name=value]とか書けばいい .red-text { color: red } .red-background { background-color: red } とかしてるんじゃないの? まあ使いかたが悪いってことだよね >>156 あとdata()前後とかな >>160 ならdata-はいらんがな >>159 上にもあったがライブラリのクラスはそれを書かなくてはならない。 つまり仕様が変わると変えなくてはならない。 これは将来的に面倒な要素を残すことになる。 また、仕様変更でeeeが加わった場合にそこも書き直さなくてはならない。 >>140 なら自分の初期設定したいクラスだけ書けばいい。 >>163 静的クラスのほうの仕様は変わらない前提?ならいいんじゃない >>161 2個ならず多い場合に、個別に設定=変更する場合ならありじゃないの? 背景色だけ変えるとか 勝手な憶測書いてそれ前提で否定する人って何が目的なんだろ >>162 > ならdata-はいらんがな HTML5違反をして、独自属性をつけるって話? そりゃそれならいらんだろうなw だがそこは論点じゃない classではなく独自の属性を使えという話 classを使うと「値のリスト」にしかならない。classという名前は固定 だからclassに自分の知らない値が入ることを考慮する必要が出てくる 独自属性の場合、「独自属性とその値」になる 独自属性には自分の知らない値は入らないので、classを使うよりも 取扱が簡単になる >>166 推測しかできないような 中途半端な書き込みをするなってことだろw >>161 横レスだが何が言いたいのかはっきり書いてくれないかな それだといくつかに取れる >>168 なら手順的には先ず尋ねるべきだな >>169 > 横レスだが何が言いたいのかはっきり書いてくれないかな クラス名 = スタイル になっているということだよ >>169 > なら手順的には先ず尋ねるべきだな 尋ねる前にヒントだけしかかかないような書き込みしてるだろ >>151 > ヒントだけ書くとスポーツやトラフィックや・・・ ヒントしか言わないやつは推測で答えられても文句は言わない >>167 classは、すべての要素に対して使用することが出来る「分類名」 data-は、htmlの要素に於いて適切な属性や要素がない場合に格納することが出来る「固有の独自データ」 勘違いするなよw >>168 どう中途半端? >>140 こういう書き方はあり?(yes|no?) >>141 yes 単純明快、しかもすでに解決済み。 横から妄想書いてるのがゴチャゴチャ言ってるだけでは。 妄想とは>>161 などな。 すでに論点完全に外れてるからな。 >>171 ヒントだけってのは俺だがわざわざ書くまでもなく容易に想像できるだろうよ 条件1→aaaの一部の状態を変化(aaa) 条件2→aaaの一部の状態を変化(bbb) 条件3→aaaの一部の状態を変化(ccc) 条件は単なるifだけじゃないぞ ユーザ入力や関数などな >>173 > data-は、htmlの要素に於いて適切な属性や要素がない場合に格納することが出来る「固有の独自データ」 だから独自データだからdata-*使えってことでしょ?何が言いたいのか分からん data-*の使い方がわからないっていうのならサンプル見つけてあげるよ https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes <label>Carpet: <input type="text" class="carpet" name="c" data-texture="deep pile"></label> Custom data attributes (e.g. data-foldername or data-msgid) can b <li data-length="2m11s">Beyond The Sea</li> <p>The third <span data-mytrans-de="Anspruch">claim</span> Here, the data-has-payment-request attribute is <div class="spaceship" data-ship-id="92432" data-weapons="laser 2" data-shields="50%" data-x="30" data-y="10" data-z="90"> こういう使い方をする。この要素は「○だ」みたいな言い方ではなく この要素の「○は△だ」みたいな時にdata-*を使うと良い 一番上の例だと、この要素のtextureはdeep pileだみたいな言い方ね これをclassに入れて、class="carpet deep-pile" みたいにしてしまうと、テクスチャの種類が増えるたびに removeClass(ほげ)のほげの種類がたくさん増えて困ってるっていうのが今の話題 「○は△だ」みたいなときはdata-*を使えば良いんだよ CSSでもdata-*に対してスタイルを設定できる 特に属性セレクタの (https://developer.mozilla.org/ja/docs/Web/CSS/Attribute_selectors より) > [attr~=value] attr という名前の、値がスペースで区切られた項目リストであり、うち 1 つが正確に "value" である属性を持つ要素を表します。 ↑ これはカスタム属性をclassと同じようにスペース区切りの値として使うことを目的として作られたようなもの (class以外でスペース区切りで値を入れるものなんてないでしょ?) だれか >>176 が言ってることを 説明できる人いる? >>177 >>140 の質問に対しては>>174 の通り解決している 根本的に受け答えの問題で質問の主旨を理解しよう 【悲報】現在自演中の>>141 さん、質問主の>>140 からは完全に無視されていたwwwww >>178 なるほどな、それがわからないからわけわからん書き込みが湧いてるのだな 説明も何もそのままだぞ 逆に何がわからないのか聞けばいい やっぱり>>176 が言ってることを説明できない=意味不明だから誰も理解できなかったようだね 理解できてる人もいるのに誰もとはいかに 大雑把な例えだが 役員だけaに変える、新入社員だけbに変える、女性社員だけcに変える 新入社員で女性社員はbとcになる はぁ? 説明できる人いる?って聞いただろ 誰も答えてないのになんでいると証明できる? >>183 でわからないならそれでいいんじゃない 誰も困らないから >>183 関係ないけどそんな仕事したなあ 新入社員の名前は明るい緑で、女性の名前は明るい赤でっていわれて じゃあ女性の新入社員の名前の色はどちらにしますかってきいたら 話きいてた? 明るい緑と明るい赤に決まってるでしょ? >>183 > 役員だけaに変える、新入社員だけbに変える、女性社員だけcに変える > 新入社員で女性社員はbとcになる それがどうしたの? >>177 にも書いているが 「○は△だ」みたいなときはdata-*を使えば良いんだよ CSSでもdata-*に対してスタイルを設定できる <span class="person" data-position="officer data-proficiency="newly" data-gender="female"> [data-proficiency="newly"] { font-weight: bold; } [data-gender="female"] { color: red; } 複数の異なった属性を、属性名をつけずに全部クラスに入れるから removeClass(ほげ)のほげの種類がたくさん増えて困ってるっていうのが 今の話題だって言ってる >>186 あるある ちなみに補足しておくと以下の場合も考えられる 上書きで後者指定優先(あまりすすまないが) 全て色とは限らず、色形位置などかぶらない状態 全て色でもその社員の同じ位置とは限らない 顔胴体背景、更に擬似要素で別部分 >>188 data-とは話は分岐されている というかアンカ追え アンカ? こんな感じだろ 145 自分:Name_Not_Found[sage] 投稿日:2018/01/28(日) 21:03:38.80 ID:??? 一つの要素にJavaScriptからそんなに多くのクラスを 設定する必要が有ることがそもそも間違ってる ↓↓↓↓↓ 147 名前:Name_Not_Found[sage] 投稿日:2018/01/28(日) 21:59:16.24 ID:??? たしかになんでそんなクラス付け外しするんだ ↓↓↓↓↓ 151 名前:Name_Not_Found[sage] 投稿日:2018/01/29(月) 21:22:55.42 ID:??? >>147 ただ記事やブログ書いてるだけならそんないらんよ ちょっと特殊な場合だな ヒントだけ書くとスポーツやトラフィックや・・・ ↓↓↓↓↓ >>151 > ヒントだけ書くとスポーツやトラフィックや・・・ ヒントしか言わないやつは推測で答えられても文句は言わない ↓↓↓↓↓ 176 名前:Name_Not_Found[sage] 投稿日:2018/02/01(木) 21:24:32.76 ID:??? >>171 ヒントだけってのは俺だがわざわざ書くまでもなく容易に想像できるだろうよ 条件1→aaaの一部の状態を変化(aaa) 略 ↓↓↓↓↓ 182 自分:Name_Not_Found[sage] 投稿日:2018/02/03(土) 09:55:44.12 ID:??? やっぱり>>176 が言ってることを説明できない=意味不明だから誰も理解できなかったようだね ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる