Translate

BTemplates.com

Powered by Blogger.

2019年7月26日金曜日

2019-07-23、07-24、07-25 到達点メモ


DOM操作とjQueryとJavaScriptがごっちゃになっていて分かんねぇぇえええ

function内で他のDOMの値が取れないのは何でなんだ・・・。
.text()じゃなかったからだった・・・。(*ずっと.textでやっており、後ろの括弧が無かった)

クリップボードにコピーするのは以下のサイトが役に立ったというかコピペした。

[jQuery] テキストエリアの内容をクリップボードにコピーするボタンを設置したい
https://migi.me/jquery/copy-clipboard/

思った以上に手間取った。
正直、未だに分かっていないことも多い・・・。

最終的に必要なところを全部ボタン化してコピーしたいのだが
今のところh1タグのところしか作れていない・・・。

あと、特定のURLときのみ機能するようにしないと調べ物しながらだと邪魔すぎる・・・。

2019-07-24

URLの指定は普通に楽だった。
urlを取得する構文を書き、document.URL.match で一部分の重要な箇所が一致するかを見れば普通に場合別けができた。

参考サイト:jQueryでURLを取得してページごとに条件分岐させる
https://designsupply-web.com/knowledgeside/1592/

データを取得する際に、タグとかの状態でhtmlデータを取得したい場合は
単純に.html()で取得できる。
.text()だと、<br>の改行が認識されないので、自力で変換してやる必要がある

参考サイト:【jQuery】textメソッド改行入らない
https://teratail.com/questions/36078

なお、JavaScriptで変換する場合は.replaceを使う必要がある
また、条件を満たすものを全部変換したい場合は、正規表現を使う必要がある。

参考サイト:特定の文字列を全て置換する[Javascript]
https://qiita.com/DecoratedKnight/items/103ab57431b6c448e535

参考サイト:基本的な正規表現一覧
https://murashun.jp/blog/20190215-01.html

参考サイト:エスケープ, 特殊文字
https://ja.javascript.info/regexp-escaping

また引っかかったところとしてスラッシュとバックスラッシュがごっちゃになってしまい
本来、スラッシュ(/)をやりたかったのをバックスラッシュ(\)と勘違いしてしまい
\\ と入力して袋小路に入っていた。
正しいやり方は \/ である。

DOMの指定の仕方で、仮に<h3 class="h3_hoghoge">を指定しようと思ったが、他のクラスにも同じ名前があったので、<section class="sec1234_hoghoge"><h3 class="h3_hoghoge">を指定したいとする。


その場合は、以下の様な指定をすればよい
*正しい例
$ ('section.sec1234_hoghoge>h3.h3_hoghoge')

無論、以下の様な指定はできない
*ダメな例
$ ('section.sec1234_hoghoge').$('h3.h3_hoghoge')

jQueryのセレクタメモ(リンク先は階層関係の指定の部分からになっている)
https://qiita.com/Thought_Nibbler/items/5d4fc40a4d4325128b24#%E9%9A%8E%E5%B1%A4%E9%96%A2%E4%BF%82%E3%81%AE%E6%8C%87%E5%AE%9A

その他
たまにクラス名で
<div class="hoge momomo">
という風にスペースで区切ってあるものがあるが
これは、クラス名が二つになっており、"hoge momomo"というクラス名のわけではない。
正しくは、"hoge"と"momomo"の二つである

参考サイト
スペースを含んだクラス名を jquery で指定できない
https://ja.stackoverflow.com/questions/22510/%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%82%92%E5%90%AB%E3%82%93%E3%81%A0%E3%82%AF%E3%83%A9%E3%82%B9%E5%90%8D%E3%82%92-jquery-%E3%81%A7%E6%8C%87%E5%AE%9A%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84

2019-07-25
本当に皆自由に書くんだなぁ・・・。
ブラウザで表示される内容と実データの中身に乖離がありすぎるのですが、それは・・・。

一番簡単なのは、一度htmlデータで出力した後に
それを再度htmlデータとして取り込みをそれを.text()で出力するのが良い
ただし、ブラウザで表示されるのと実データは違うので(CSSなどで表示に変化が出ているのだろうか・・・?)
実データがアレだと結局手直しが必要になる。

正規表現で、下のように赤字の部分だけ変えたくない場合とかがある
    /<div>テスト<\/div>\n(.*?)<\/th>\n(.*?)<td/,

その時は以下のように書けばよい
'<div>テスト<\/div>\n$1<\/th>\n$2<td class="test_class"'

参考サイト
文字列の一部だけを変更したい
https://hodade.com/seiki/page.php?r_ichibu

日付や年数の加算減算をしたい場合は、
.setDate()をすればよい。

あと、紛らわしい事として、
*.getMonth()で取得できる数値は0~11になっている
*年数を取得したい場合は,.getFullYear()
がある
なお、文字列から日付に変換したい場合は
var date = new Date ('2019-07-25');
でも可能

参考サイト
【JavaScript】日付処理
https://qiita.com/kazu56/items/cca24cfdca4553269cab
JavaScript の Date は罠が多すぎる
https://qiita.com/labocho/items/5fbaa0491b67221419b4
javascriptで日付(月・日)を加算(減算)してみた
http://shoprev.hatenablog.com/entry/2014/09/18/223316

X番目のthのタグを指定するには
th:nth-child(X)とやればよい
一番最初の番号は1。0ではない

jQueryでTABLE要素の操作
https://rfs.jp/sb/javascript/js-lab/jquery-table.html

末尾の文字を削除する場合は
'aaaaaf'.slice( 0, -1 ) ;
とやればよい

先頭、末尾の文字を削除する方法
https://lab.syncer.jp/Web/JavaScript/Snippet/5/

タグの指定が間違っていないはず?なのだが上手く行かない
元のHTMLの構造がおかしいのか、それとも、なんか指定が間違っているのか・・・?

目標の大体は解決できたので今日はここまで。


0 コメント:

コメントを投稿