+ JavaScript の質問用スレッド vol.121 +
レス数が950を超えています。1000を超えると書き込みができなくなります。
JavaScript に関する何でも質問スレです。
お気軽にどうぞ。 F12 開発者ツールのコンソールで、実行した
style_sheets = document.styleSheets
css_rules = style_sheets[0].rules
css_rules[1].cssText
出力
'#test li:hover { background: rgb(0, 255, 0); }' そりゃdocument.styleSheetsで取得出来ないとは誰もいってないし 見苦しい言い訳は不要
負けを認めるか、潔く退場するかの2択 スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります リスクも回避方法もない
過去には問い合わせで許可を得た上で図書館のサーバーにスクレイピングをした人が捕まってる >>851
#test1 li:hover,#test2 li:hover{
background:#0000ff;
}
というような書き方の場合test1 li:hoverを取得できないやろ >>854
俺は>>838と>>843,845,847だが、何も間違ったことはいってないつもり
どの辺が言い訳なのか教えてくれ 俺からすると>>844,846が言い訳
「styleエレメントを見ればいい」に突っ込み入れてるのに、頓珍漢な返答で困った 結局言い回しに数レスかけて難癖付けたってだけの話ね 結局、正答は>>838と>>848だけ
他の回答はノイズでしかないでしょ >>860
言い回しだけでなく、ミスリードだと思うんだが、お前に分かるなら教えてくれ
>>835
> hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
「styleエレメント」の言い回しを修正したとして、hoverのプロパティをどうやって取得するんだ? >>855
5ch は、マルチポスト禁止!
同じ質問を、複数のスレや外部のサイトに書いてはいけない
プログラム板のスレに回答しておいた
【まず1嫁】くだすれPython(超初心者用) その54
https://mevius.5ch.net/test/read.cgi/tech/1623240344/867 >>862
また言い回しだね
プロパティ(の内容)ってなんで補完できないかな >>864
いやだから、それでどうやって実装する? 言い回しが悪ければ実装手段も示せない>>835の負けだな
言い訳が見苦しい 頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか? >>871
>>835と何の関係もないコードを出されましても 横からだが、>>835が>>848になるとは俺も読めんわ
どう解釈したらこのコードになるのかさっぱりわからん 分かるが、こんな難解コード書くならループ書くわ
スタイルシートを回って、ルール回って、全部をテキストとして結合して、:hover が含まれてるか判定 翻訳してみた
hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
↓
:hover疑似クラスを見たければ、document.styleSheetsを見ればいいんじゃないかな
間違ってる部分は他の正しそうな単語に置換していけば、いずれは正解に辿り着く
質問者は変換作業を頑張れ styleエレメントをdocument.styleSheetsと読みかえるところがエスパー力高いな それって CSSの優先順位や詳細度に継承おまけにimportantやなんか考慮するととてつもなくややこしくなるんじゃ >>878
コードから文章を読み取るのは出来そうだが、コードがない状態で文章からコードを作るのはまず無理だろうな >>878
hoverのプロパティ自体とあるから中身をa.style以外からとろうとすれば
document.styleSheets[x]ぐらいしかとるとこなさそうだけど >>881
正解を知ってる俺達が文章を改竄するのは難しくない
だが、もしも俺が正解を知らない質問者なら、document.styleSheetsには辿りつけない a.style以外からとるんだなとわかればぐぐればすぐわかるわな みんなすげーな
エスパー力5の俺にはJavaScriptは無理だと思った 質問者はstyleの定義まで知ってるのだから
たどりつけないことはないと思うけどなあ 0からググるのと
なにか入ってからググるのでは大違いだからな >>820なんですが、>>830の方法が今回やりたいことに一番適合してていい感じに止めたい処理止めれました
回答頂けた方々ありがとうございます 有名企業などのサイトのsourceを見てみると、大概見た事ない独自の?jsファイルが山盛りなんですけど、
あれってどういう事ですか?three.jsだとかそういうの直接使わないで組み替えたりするんですか?
あとなんであんなに山盛りscriptがあるのか、、読んでも全く勉強にならないしどう勉強したらいいかもわあからない、、 >>892
そういうのを自分で調べないから
いつまでたっても理解できないんだよ 一個一個ublockでブロックしていったら何をしているかわかるんじゃないの? >>822
横からですが、子要素のイベントが残ってたら便利そうと思って試してみたらら
全部外されてしまいましたw
自作関数なら参照リレー渡しが無難ですね 数学座標を画面座標に変換する関数はありますか?
あれば何を使えばいいんですか?
画面座標は左上が(0.0)で下方向に行くとがy座標が増加
数学座標は中心が(0,0)で下に行くとy座標がマイナスなので
これを画面座標に変換しないとちゃんと表示できないので
-単項演算子を(0 - x)と考えるか(-1 * x)と考えるか <div style="width:80%;height:500px;background:blue"></div>の
長方形の中心座標はどうやって求めればいいんですか?
長方形の左上を原点(0,0)とする。y座標は500/2=250ってすぐに出るけど
x座標が固定値じゃないのでわからん。 fixedで固定表示している要素を、一定量スクロールするとabsoluteにして、
JSでtopの座標を指定して、浮いている状態が解除されたように見せています。
この機能がAndroidのchromeだと、上スクロール時にだけ表示されるアドレスバーと
ツールバーによって、fixedからabsoluteに変わるスクロール量がずれてしまうようで、
意図しないタイミングで切り替わっています。
どうにか改善する方法はありませんでしょうか? javascriptからNode.jsで立てたサーバ内のsqliteファイルを操作する方法を知りたいです
検索するとNode.jsでしか使えないコマンドを使ったものしか見つかりません >>906
そうなのですが、サンプルコードに載ってるrequestがエラーを出力します
Node.jsだけで使える関数があるようで、単にjsファイルとして呼び出すだけではエラーを返されます node.jsがjavascriptだからと言ってもブラウザのスクリプトから直に操作はできない
サーバー側でデータベースを操作するためのwebインターフェースを作ってそれにあわせてfetchやwebsoketで対話
node以外のサーバーでのやり方と何も変わらない なんかすごいね
よくサーバー立てられたなと感心する んなこと言ったら世の中に失敗作じゃないものなんてほとんど無い。 >>908
> node.jsがjavascriptだからと言ってもブラウザのスクリプトから直に操作はできない
そういう意味じゃなくて、「javascript(Node.js)からNode.jsで立てたサーバ内のsqliteファイルを操作する方法」は既に出来てる、と伝えたかった
JavaScriptの実行環境が本人の口から出てこないので結局、伝わらなかったが そもそも「Node.jsで立てたサーバ内のsqliteファイル」があり得ないよな
「Node.jsでサーバ(ソフト)を立てたサーバ(ハード。物理か論理か知らんが)内のsqliteファイル」という意味かな 複数のNodeListを一つのNodeListとして変数に入れることは可能でしょうか?
Array.fromでArrayにしてからつなぐのが無難なんでしょうか >>911
nodeの開発者が失敗作と認めてるんだ どっちかというとdenoの方が失敗しそうだけどな。 >>915
NodeListには自身の編集用メソッドがない
1つにまとめて何をしたいのかによるが、DOM APIを使うならDocumentFragmentにしておけば、大体は対応できる ありがとうございます
DocumentFragment勉強してきます >>892
例えば、Ruby on Rails では、Node.js, Webpack, Babel, Bootstrap などを使っているから、
プロジェクトを作るだけで、node_modules 以下に、数千ものJavaScript のモジュールが入る。
React, Vue.js を使えば、さらにそれ用のモジュールも入る
>>905
例えば、Ruby on Rails では、プロジェクトを作って、モデル(テーブル)を定義すれば、
3大データベース、sqlite, mysql, postgresql でアクセスできる
さらに、scaffold という魔法の呪文を唱えれば、最初から、CRUD 操作もできる
だから最初から、Railsのようなフレームワークを使えばよい。
サーバー側は、Rails一択。それ以外は使われていない。
Node.js も分かりにくいだけ
詳しくは、YouTube で有名な、雑食系エンジニア・KENTA のサロンで聞いて下さい playerHeight = $("#player").height()!;
const top = position!.top;
とあるサイトに 上記のような コードがあり "!" の意味が分かりません。
これってjqueryなどの特定ライブラリの書き方なのでしょうか
参考になるサイトがあれば教えていただきたいです。 きっとそこで何かビックリすることがあったんじゃないかな TS は、Type Script
TypeScriptの変数の末尾の"!"(エクスクラメーション/感嘆符)の意味
https://qiita.com/zigenin/items/364264a6cf635b962542
この"!"の呼び方は、Non-null assertion operator
プログラマがコンパイラに対して、
この変数はundefinedやnullになることはありません、と教える記述
let a = f( ); // 戻り値の型は、string | undefined とする
return a! ;
ここで、f からの戻り値が、undefined, null ではないと、
プログラマーが絶対の確信が持てるのなら、
無理矢理、a! として、undefined, null になる可能性を除去して、
string型だけであると、コンパイラに教えることができる
このように、コンパイラを欺いたら、後で大きなしっぺ返しを食らうかも valueは値みたいなイメージで使うことが多いと思うのですが、valueの変わりにelementとしてる人を見かけます。
これってどう違うのでしょうか 問答無用にElementのインスタンスだろうそれは、と
自分はvalueは数値くらいにしか使ってないな
文字列はxxStrとか、日付はxxDtとか >>930
さすがに書いた人に聞いてくれ、としか
>>923といい、エスパー案件ばかりなんだが、なぜ証拠となるコードも出さずに当てずっぽうの回答をさせるんだ? https://test.wikinist.info/?page_id=51
フィルタ作ってます。
MemとWomenにチェックが入ってる時はその中からフィルタしたいと思ってるんですがどうしたらいいでしょうか?
現状はチェックした奴が全て表示されます。 >>933
複数条件でフィルタリングすると該当なしってのもあり得るけど
その場合どうなる仕様なの?何も表示なし? >>934
Menにチェックが入っていてWomenの値が入ってる人をチェックした場合は表示なしって感じにしたいです
最初はリターンをこんな感じで書いてましたが何も表示されませんでした。
return filterArr.find(element => ((element.el === item.values().name) || (element.el === item.values().city)) && (element.el === item.values().sex)); 雰囲気的にmen womenが両方チェックありと両方チェックなしの場合は同じ扱い?
実現したい仕様があやふやでよく分からんのだが >>933でコードが出たが、今度は要求仕様がエスパー案件になったな men womeonの両方がチェックと両方チェックなしは同じ扱いということにしたいと思ってます。 小手先でどうにかならないか考えたけど結局汚くなった
sexだけ扱い違うのにname,cityと一律並べてる時点で無理があるぞ
https://jsfiddle.net/5zeorj9u/ >>929
ありがとうございます。
わかりました。 >>939
ありがとうございます。
最後の部分で何と何を&&で評価しているのかあまり理解できないのでconsole logで確認したいと思ってますが
1行のアロー演算子使ってる場合ってどうやって間にconsole logをいれたらいいのでしょうか? >>941
カンマ演算子で実現可能だけど無理やり1行にする意味は無い https://jsfiddle.net/raion2542/q10vxbde/14/
https://jsfiddle.net/raion2542/eoLtsd5b/8/
1つ目はlist.js 2つ目はTabulator.jsを使っています。
この2つを共存させることはできますでしょうか?
「〜でソート」を押してソートできるかどうかです
2つ目の方のJSの一番下に
const options = {
valueNames: ['name','corporation','callsign','frequency','power'],
};
const featureList = new List('sample-list', options);
を書き込みましたがうまくいきませんでした 昔Ajaxというのが流行ったと思うのですが今も使われているんでしょうか?
あまり聞かない気がするのですが死語で名前が変わったりしました? >>945
今も使ってるとこでは使ってるけど、Fetch APIも結構こなれてきた jQueryのAPIに名前が残ってるけど
今の時代JSが通信するなんて当たり前なので一々ajaxとは呼ばない >>946-947
説明ありがとうございます。今はFetch API?というのを使うのですか?
授業でこれを使えと言われたのですが今もこのコード使っても問題ないでしょうか?
// ===== Ajaxのお約束オブジェクト作成================================
// [入力]
// ・なし
// [出力]
// ・成功時: XmlHttpRequestオブジェクト
// ・失敗時: false
function createXMLHttpRequest(){
if(window.XMLHttpRequest){return new XMLHttpRequest()}
if(window.ActiveXObject){
try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}
try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}
try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}
}
return false;
}
:
:
xhr = createXMLHttpRequest();
if (xhr) {
sUrl_to_get = sUrl_ajax;
sUrl_to_get += '?zipcode='+sZipcode;
sUrl_to_get += '&dummy='+parseInt((new Date)/1); //(*1)ブラウザcache対策
xhr.open('GET', sUrl_to_get, true);
xhr.onreadystatechange = function(){zip2addr_callback(xhr, sAjax_type)};
xhr.send(null);
} // *1: GETメソッド時はURL文字列に、POSTメソッド時はsendの文字列につける この本、2019 年8 月12 日初版発行らしいです。 FetchではなくXMLHttpRequest使うにしても
もうIE6以下用のActiveX用の部分はいらんでしょ xhrにActiveX…
IE亡き令和の世では仕事にも個人サイトにも使えないと思うがお勉強にはなる…のかな? レス数が950を超えています。1000を超えると書き込みができなくなります。