ど素人から毛を生やす。<延>

javascript

text()で改行コードを含むテキストを取得、alert()とかconfirm()とかtextareaとかに出力したかった話。

Web > javascript 2018年8月3日(最終更新:17日前)

どもです。
jsのしょーもない話です。

PHPで改行コードを含むテキストをHTML上に出力、jsでそれを拾ってconfirm()に表示、ってやりたかった。

<p>このテキストを出力したい。\n改行もしたい。</p>

message = $("p").text();
alert(message);

「このテキストを出力したい。\n改行もしたい。」

なして改行コードのまま出力されてしまうんじゃぁああ(T_T)

この疑問を解決してくれたのが、こちらのYahoo!知恵袋の投稿

えーっと、つまるところ、... 続きを読む »

jsでforeachがやりたいとき、jQueryが使えるなら$.map()が一番それっぽい。

Web > javascript 2018年5月2日(最終更新:3月前)

どもです。

jQeryの$.map()って、普段は$("input").map(function(){})みたいに
要素をループさせるのにばかり使っていたのですが、foreach的な使い方ができたんですね。

$.map(array, function(value, key){ })

こーすると。

しかもこのarrayのところ、オブジェクトでもOK。つまり連想配列OKです。やったぜ。

このとき、thisとvalueは同じものが入るので、セレクタとして使いたいときは$(this)でも$(value)でも可。... 続きを読む »

endsWith()って超イイ感じだけどIEの野郎が非対応なんだって!

Web > javascript 2018年4月20日(最終更新:4月前)

どもです。

jsで後方一致が使いたいがために、endsWith()を使いました。
そうしましたところ、

( ゚Д゚)「endsWith()はIEが対応してないから、作り直して!」

(*'ω'*)「今時IEなんて対応して誰が得するんだよォオオオオオオ!!!」

これだと[target].endsWith(str)⇒endsWith([target], str)になるのが痛いですが、仕方ない。

あと今回要らなかったのでパラメータにも対応してないです。つら。

なんとか最小限の変更で回避。IEつら…

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった
... 続きを読む »

動的に増やしたhtml要素を操作するjQueryに関するメモ書き

Web > javascript 2018年3月23日(最終更新:4月前)

どもです。

jsで動的に増やしたhtml要素を操作するjQueryに関して、今更感漂うメモ書き。
何かあったら都度増えます。たぶん。

.click()は効かない。.on()を使う。

追加された要素は、.click()、.change()などの古いトリガーの書き方ではトリガーにならない。

ただし、map()などはトリガーではないので、そのまま使える。混同しないこと。


参考サイト:[Qiita]jQuery 便利なonを使おう(on click)

data()はhtmlを書き換えられない

なんでさ。

ネイティブの.datasetか、.attr()を使うべし。旧ブラウザを踏まえたら.attr()が無難か。結局.attr()が万能。


参考サイト:[Qiita]data属性を動的に変更する場合の注意点... 続きを読む »

ステップ操作のトリガー扱いにブラウザ差異があるのでinput[type=number]を使う際は注意。

Web > javascript 2018年3月2日(最終更新:5月前)

どもです。
最近フォーム回りとSQLの話しかしてない気がする。

input[type=number]のフォーム操作について。

入力の数値に変更があった場合は再計算、という簡単なソースを作成したのですが、
Chromeでは正常に動いたのにFireFoxでは上手くいかず。

この原因が、トリガーにonBlurを使用したことでした。
どうやらChromeでは入力欄の上下矢印(ステップ)の操作はフォーカスが当たった扱いになるのですが、FireFoxではそうならないようです。

今回は矢印で操作したいので、onChangeに変更。

うーん、ブラウザ差異は発覚しにくいから厄介だ。(-_-メ)

onChange、発火したりしなかったりするよ!?(追記)

検証結果:
FF→発火する
Chrome→発火したりしなかったりする(3回に1回くらい発火する)
edge→発火しない
IE11→発火しない... 続きを読む »

古いjQueryでform制御したらsubmitできない、または「s[y] is not a function」になったとき。

Web > javascript 2018年2月6日(最終更新:6月前)

どもです。
jQueryでフォームを制御していたら、submitできない事案が。
コンソールに「TypeError: s[y] is not a function」というエラーが発生しています。

このエラー自体は「関数でないものを、関数呼び出ししようとした際に発生するエラー」らしいです。
詳細はMDNへのリンクを貼っておきます。

結論から言えば、今回の原因は2つ。

ひとつは、使用していたjQueryが古かったことに起因します。なんと1.8.3。このご時世に1系です。... 続きを読む »

keyup / keydown の使い分け

Web > javascript 2017年9月29日(最終更新:10月前)

どもです。
この頃、入力フォーム周りで色々やることが多いので備忘。

jQueryでキーを押したときの動作といえば、
keydown / keypress / keyup
この3つ。

内、keypressはブラウザ差異があるので、使用の際は注意。
今回は、keyup / keydown のみ考える。

keydown ... 続きを読む »

jQueryのajaxでphpを実行して、配列を返り値にして再びjsで処理したい

Web > javascript 2017年8月18日(最終更新:1年前)

どもです。

ajax、苦手です。

苦手というか、不慣れといった方がいいかもしれません。
以前の仕事では覚える必要性の無いものだったので。

それはともかく、
今回の課題は、jQueryからphpを実行して、返り値に配列を受け取って再びjsで処理 です。

①基本形

jQuery1.8で新しい書き方になっていて、現在旧仕様は非推奨。
僕が今回携わった環境は古ぅいところなので旧仕様でしたが、新規で書くなら上。

パラメータについては、以下のサイト様を参照。見た感じ、ここが新仕様かつ分かり易い。
jQuery:一般的なAjax通信を実装するには?($.ajax)- Build Insider

②phpから値を受け取って処理したい

... 続きを読む »

input type="file"でアップロードされたファイル名を取得(IE9以下も)

Web > javascript 2017年7月13日(最終更新:1年前)

どもです。

jsにて、input type="file" でアップロードされたファイル名を参照する必要がありました。

解決です。

と思いきや、

これではIE9以下では値が取得できないとのこと。

調べてみたところ、.fileにはFileAPIというものを使用しており、IEは10以上からしか対応していないと。

vistaのサポートも終わったしIE9以下とか捨てていーじゃん(゜-゜)
とか思う気持ちはありますが、仕方ないので対応しましょう。

まんま参考サイト様の受け売りなのですが、
input type="file"の.valueを取得すると、一般的なブラウザではファイルパスかファイル名になるそうです。

IEの場合はファイルパスなので、/で区切って配列化し、末尾のファイル名だけを取得します。
これでおk。... 続きを読む »