JavaScript の質問用スレッド vol.125

■ このスレッドは過去ログ倉庫に格納されています
2022/08/07(日) 15:57:40.26ID:TS5TGpUB0
!extend:checked:vvvvvv:1000:512
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。次スレは>>950>>2の「次スレの立て方」を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

■前スレ
JavaScript の質問用スレッド vol.124
https://mevius.5ch.net/test/read.cgi/tech/1636525464/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
2023/01/18(水) 08:57:37.16ID:cgb3Ru010
>>612
5ch対策でしょ
2023/01/18(水) 10:05:55.23ID:csewAuIZ0
>>614
すいません。単純に特殊文字ダメよという内容だったんで・・・

"&lang=nl";

"&lang=nl"; もし、"&" で始まるエンティティを含めるつもりなら、";" で終了させるべきです。
このエラーメッセージのもう一つの理由は、このテキストの直前にある「&」文字をエスケープしなかったために、
誤ってエンティティを作成してしまったことです。(機械翻訳)

自分としては&と書いて、リンクアドレスとして&を出力したいわけです・・・
2023/01/18(水) 10:16:20.21ID:guU+fOES0
>>615
あーそういうことか。コピペコードで悪さでもしようとしているのかと思ったけど違うみたいね

>>610
大体どの言語でもクエリ文字列を作る仕組みが用意されているのでそれを利用するのが適切です
JavaScriptならコレかな

URLSearchParams
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
2023/01/18(水) 11:11:32.49ID:CwkcAAQnr
>>616
載せるならエラーメッセージ原文を
で、そのメッセージでググってみた?
あとエラーチェックするとって具体的にどういう操作をしたの?
2023/01/18(水) 12:42:13.54ID:iQx/CEUf0
>>610
htmlのscript要素の中身はCDATAなので文字参照にする必要なし
もちろんinnerHTML等htmlとしてパースされるものに突っ込む場合は必要だが
htmllintなんかでエラーになるのは無視していい
2023/01/18(水) 13:08:45.81ID:csewAuIZ0
>>618
エラーメッセージはその部分は&だろと言っているのですが、じゃあ&と書くと
tp://www.concertzender.nl/?s=kensaku&lang=nl と出力されてエラーになり、困ったわけです・・・

>>619
無視していいんですね。ありがとうございます。
htmlでは&と書くと&になるのに、スクリプトの部分ではそうならないのですね。
2023/01/18(水) 13:26:39.01ID:Okbz9NQsr
>>620
何も質問に答えてないよね
答える気があるならもう一度>>618を読んでほしい
2023/01/19(木) 22:07:44.38ID:40XBuhhWH
君は君の質問に反応しない人には
推し量って導こうという崇高な意識はないの?JS使いなのに?
2023/01/20(金) 00:14:23.52ID:VzeMnjK00
>>622
誰からも回答してもらえない質問者は、他の人を導く存在に昇格ということか
質問に回答しないのが本人の為なのかもしれんな
2023/01/20(金) 01:57:18.23ID:ptsQI5JN0
それよりJavaScriptをJSと略すと女子小学生しか思い浮かばないからそろそろやめたほうがいい
2023/01/20(金) 07:46:55.99ID:PpNyk8UWr
>>622
>君は君の質問に反応しない人には
反応しない人?
質問に反応されたけど回答になってなかったからそこを指摘したんだけど
2023/01/20(金) 17:53:26.94ID:zXaveivW0
>>624
J
2023/01/26(木) 00:31:01.01ID:c9Kzf+f60
【環境】Win11,Chromeで表示させたHTMLの中のjavascript
Windowsのフルパスのファイル名が入った変数を\でsplitしたいんだけど可能?

x_textにはJSONデータから取ってきた'D:\\00.png'が入っていて
console.log(x_text)だとD:\00.pngと表示
これをsplitすると
aaa1.html:154 Uncaught TypeError: Assignment to constant variable.
になる。
split('\\')をsplit('\\\\')にしても同じ

console.log(x_text)
arr_text = x_text.split('\\') ←ここでエラー
console.log(arr_text[0])
2023/01/26(木) 00:37:27.57ID:q740ttN00
>>627
arr_textがconst宣言されてるだけでは?
2023/01/26(木) 01:06:05.60ID:c9Kzf+f60
>>628
できました。
サンクスです。
630デフォルトの名無しさん (アウアウウー Saa3-6TJq [106.129.156.153])
垢版 |
2023/01/29(日) 10:31:07.49ID:rZA8vUyra
初学者質問ですいませんが、変数aが文字列あいう、かつ、変数bがundefinedでない時 というif文を書きたい時
if (a=='あいう' && (!(b === void 0))) {...
という書き方であってますか?
よりシンプルな書き方とか、より標準的な書き方ってありますでしょうか。
2023/01/29(日) 12:00:10.71ID:9rN3KLzS0
厳密不等価演算子 !==
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Strict_inequality

undefined が予約語になってないから void 0、ってのは……はて、今もやるものかね
2023/01/29(日) 12:54:20.77ID:eUvMCdrW0
if(a == 'あいう' && !b)でもよさそうな気がしなくもない
2023/01/29(日) 15:43:05.57ID:d0tJgmu5r
>>631
undefined は予約語ではないのでローカル変数による上書きが可能…という意味では、void 0 を使う価値はある
634デフォルトの名無しさん (アウアウウー Saa3-6TJq [106.129.157.183])
垢版 |
2023/01/29(日) 15:59:30.70ID:rpOrCqGha
>631
ありがとうございます。リンク先確認しました。
if(a=='あいう' && b!== undefined またはvoid 0)
という感じでしょうか。
ここでb!= undefined とするとまずいのはbがnullの時だけ、という認識でいいでしょうか。

>632
ありがとうございます。bが0や空文字の時にも偽になりそうです。
2023/01/29(日) 16:03:43.52ID:R24XfIrD0
第一にjavascriptみたいな後付け追加仕様が混在する言語は規格よりも実装の影響力が強いから
想定環境で検証済の方法を採用すべきだと思う
コードとしては変数をtypeofで"undefined"と比較するのが恐らく理解しやすいが、
メンテナがjavascriptに十分慣れていてvoid 0のイディオムの理解を期待できるならそっちでもいい
2023/01/29(日) 16:28:19.00ID:MX/guDl/d
>>634
結局のところ
・undefinedが上書きされる可能性を考慮する必要があるのか
・bがundefined以外のfalsyな値を取りうるのか
・取る場合それぞれの値をundefinedとは区別したいのか同じとみなしたいのか
この辺次第で望ましい書き方は変わってくるわけで
2023/01/29(日) 16:30:22.92ID:d0tJgmu5r
>>634
型チェックも働かせるなら

if (a. === 'あいう' && b !== void 0)

と書けば良い
'あいう' も==では型チェックしない

> ここでb!= undefined とするとまずいのはbがnullの時だけ

まずいのは、undefined! == void 0 の場合
638デフォルトの名無しさん (アウアウウー Sacd-3+Au [106.128.44.107])
垢版 |
2023/02/12(日) 19:44:05.09ID:zQHZ3m1Fa
//☆☆県(API番号☆00000)の予報を取得
let url = "https://www.jma.go.jp/bosai/forecast/data/forecast/☆00000.json";

fetch(url)
.then(function(response) {
return response.json();
})
.then(function(weather) {
console.log(weather);
//☆☆県を選択し、変数に詰め直す
let area = weather[0].timeSeries[0].areas[0];
console.log(area);
//発表者と更新日時の情報を書き出す
document.getElementById("publishingOffice").lastElementChild.textContent = weather[0].publishingOffice;
document.getElementById("reportDatetime").lastElementChild.textContent = weather[0].reportDatetime;
//特定の地域の情報を画面に書き出す
document.getElementById("targetArea").lastElementChild.textContent = area.area.name;
document.getElementById("today").lastElementChild.textContent = area.weathers[0];
document.getElementById("tomorrow").lastElementChild.textContent = area.weathers[1];
document.getElementById("dayAfterTomorrow").lastElementChild.textContent = area.weathers[2];
});

上手く動かないのですがどこが間違えてますか?教えてください。

☆はわざとです
2023/02/13(月) 16:33:17.79ID:6gR8iJfAr
バグってるので調査してください

それは質問ではなく作業依頼
2023/02/13(月) 22:37:53.05ID:E1kxmkHl0
>>638
やりたいことも伝えずに上手く動かないと言われてもなー
2023/02/14(火) 07:31:57.89ID:NKP9M84/H
なぜ自身でデバッグせんのよ
2023/02/14(火) 21:18:40.92ID:snyjWmK+0
そのメソッドチェーンやめれば分かるよ
エラーが起きない前提があってのメソッドチェーンだからよ
2023/02/17(金) 12:17:26.22ID:DJukcnvm0
$.each()とsetIntervalをつかって、
インターバル時間ごとに順番に配列の中身を、コンソール出力する方法ありますでしょうか?

$.each()は、一度に処理するから、一つづつコンソール出力するのは難しいですかね。
2023/02/17(金) 20:26:53.96ID:iF4/ZjHx0
>>643
$,each()を使う理由がわからない
setIntervalだけ使えば良い
2023/02/17(金) 22:54:40.37ID:iF4/ZjHx0
>>643
clearintervalで1回だけタイマーを動かしてPromise化してawaitして$.each()を使えば、理屈ではできると思う
手段のモ目的化、かつ無駄に複雑だと思うが
2023/02/18(土) 19:51:29.82ID:gBmvvkX6a
nodeでPythonのif name==main
みたいなことできませんか?
メソッドの動きをデバッカーでみたいんです
2023/02/24(金) 01:21:32.26ID:jGK2BMhd0
//【環境】Win11,JScript
//【何をしたのか】case文のところに条件式を書き、breakせずにすべての条件式で評価したい

//【サンプルコード】現象を再現可能な最小限のコードを書いてください。
a=1

switch (true) {
case (a==1):
a=a+16
WScript.echo("aの値を変更a=",a)
case (a>10):
WScript.echo("a>10","a=",a)
a=a-10
WScript.echo("aの値を変更a=",a)
case (a>30):
WScript.echo("a>30です","a=",a)
a=0
WScript.echo("aの値を変更a=",a)
}
WScript.echo("最終的な結果a=",a)

//【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
aの値を変更a= 17
a>10 a= 17
aの値を変更a= 7
a>30です a= 7
aの値を変更a= 0
最終的な結果a= 0

//【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
2番目のcaseでa=7だから3番目のcaseにはいかず、最終的にはa=7になるのでは?
2023/02/24(金) 02:46:21.28ID:thXJapXb0
>>647
上から順に case が評価され、どこかで真になればそれ以降の case は評価されない。
break してないからそれ以降の処理がフォールスルーで実行されてるだけ。

全部の条件を評価したいなら普通に if で書けばいいと思うよ。
2023/02/24(金) 05:29:40.16ID:xQyCpHMf0
そもそもswitch文って条件にtrue入れて使うようなもんじゃないぞ
2023/02/24(金) 08:59:59.37ID:thXJapXb0
>>649
case に式を書けるようにしたことによって使えるようになった副作用みたいなものだよね。
switch の式と一致する case を探すのが switch文の動作だとするなら、switch の式 true と一致する値となる、すなわち true になる式を持つ case が選択される。
個人的には if で書けばいいものをわざわざ分かりづらい書き方にしてるバッドプラクティスだと思ってるが、フォールスルーと組み合わせると if よりもスマートに書ける可能性はあるかもね。
特に >>647 のように全部の case を評価してほしいなら、switch で書く利点が何一つ無い。
if より利点がある場合は、フォールスルーする場合に最初に true になる case までしか式が評価されないことくらいなのに。
2023/02/25(土) 02:30:10.34ID:E1i3tKVi0
>>650
良いサンプルが思いつかんけど、
ifで書こうとすると、重複する処理を書かなければいけなくなったり、フラグの変数を導入したりすることになるんだけど、
breakなしのswitch case文ならうまいこと書けるんじゃないかと思ってやってみたけど、動かなかった。
2023/02/25(土) 21:04:04.70ID:5GrSMYMK0
jQuery以外のライブラリ・フレームワークは廃止して欲しい。
覚えるのが大変。
2023/02/25(土) 22:01:05.33ID:YxrjvuYta
react だけでよくね
jqueryとかいい加減消滅しろよ
2023/02/25(土) 23:22:22.93ID:5GrSMYMK0
>>653
この2つは併用出来ないから辛い。

で、reactならではの利点は?
2023/02/25(土) 23:31:29.20ID:fw0b+BcSM
質問スレで焚き付けんな
2023/02/25(土) 23:38:37.47ID:TypeZdxc0
素の JS でいじゃん。

というのは言い過ぎかもしれんけど、何に使ってるんだか分からんようなことでいちいちおまじないのように jquery 読み込んでる呆れるようなところも少なくないんだよな。
通信回線速度も処理能力も上がってるから動いちゃいるが、とりあえず素の JS で書けるようになれと言いたい。
ブラウザ毎の非互換も少なくなってるし querySelector みたいな便利なメソッドもあるし、そんなに苦労しないでしょ。
2023/02/25(土) 23:49:36.71ID:YJ+BhbRla
それなjqueryおじさんはJSだけで書けるようにしておけ
それでも足りないならReact使えな
2023/03/01(水) 19:53:41.69ID:hdBOeOla0
githubで他人のコード見てるとclassもprototypeも使われてないやつが多いんだけど何でなん?ベストプラクティスがruby以上にわからん何が正解なん?
2023/03/01(水) 23:29:12.38ID:8kmkGnGP0
暗黙的なクロージャがあるからclassやprototypeを使わずとも割と困らないのが何でなん?の回答になる
2023/03/02(木) 02:00:11.27ID:65NO3QYK0
htmlコーダー志望の初心者です。
JSの入門書を読み終えたのでより実践的な学習に移行したいのですが、
既存の書籍やサイトは総論のような基本的な知識に焦点を当てたものが多い印象で、
実務において初心者コーダーにどのようなプログラムの作成が
求められてくるのかが判然としません。
そのような内容に焦点を当てた書籍やサイト等はありますか。
2023/03/02(木) 19:51:27.97ID:eGjuMjwU0
そもそもhtmlコーダーって何?ってぐぐってみたらデザイナやエンジニアが片手間でできる内容だし専門職としては成立せんのでは
2023/03/02(木) 23:05:32.75ID:65NO3QYK0
>>661
htmlコーダーという職種自体がオワコンですかね…
ご意見参考にさせていただきます。
2023/03/03(金) 08:25:40.95ID:DJxhSXLyr
99%のエンジニアは片手間でできないからな
エンジニアはhtmlとcssをバカにするけどほとんどのエンジニアはまともに使えていないんだよ
特にcss

使い方を知らない
勉強しようとしても理解できない
なのにバカにする

エンジニアは視覚からコードに落とし込む能力が絶望的に劣っている

デザイナーから上がっきたモックをhtmlとcssで再現できない

だけどその事実がバレたくないからコーダーといってバカにする

実際にはjsxとstyle componentなどで必須スキル

必須だけどできないからhtmlとcssはデザイナーの仕事だと言い放つ

じゃあjsxはデザイナーに書かせるのか?と聞くと無言

毎回このパターン
2023/03/03(金) 08:32:56.76ID:an7QtCXRd
まあでもそういう業界だからね
連携ダメだからと言って隙間に入り込める余地があるかどうか
2023/03/03(金) 09:44:56.39ID:o6EY7x580
>>663
組み込み系や汎用系のエンジニアにでも頼んでるのか?
ちゃんとWeb系やってるとこに頼みなよ
2023/03/03(金) 10:01:30.76ID:DJxhSXLyr
>>665
むしろ組み込みは汎用系のほうは知らん
Web系エンジニアはこんなんだぞ
ほんの少しだけ有能なフロントエンジニアがいる現状
なぜならフロント開発スキルとデザインスキルの両方を持ち合わせた人材がほぼいないから
2023/03/03(金) 10:24:24.87ID:o6EY7x580
webプログラマーに高度なデザインまで要求するのは無理でしょ
そのためにプロのデザイナーがいるんだし
でもほとんどのエンジニアがhtmlとcssをまともに使えないなんてありえない
今いる環境が悪すぎるんじゃないの?
2023/03/03(金) 11:25:14.28ID:yQajwbSzM
ぶっちゃけデザインするやつが CSS まで書くのが一番いいんじゃね?
位置やら大きさやらの細かい詰めまでこだわれるでしょうに。
2023/03/03(金) 11:27:48.97ID:GvE2UXq10
アニメーションとかJsonでデータいじくる時だけ呼んでください

ってことにしてる社内ニート
2023/03/03(金) 11:54:37.73ID:DJxhSXLyr
こういうこと

デザイナーの担当
・モック作成
・Atomicデザイン込みのコンポーネント設計
・コンポーネント作成
・App作成(コンポーネントの組み上げ)
・jsx、css
・state更新とrender関連
・レスポンシブ対応
・トランジションやアニメーションなど
・DOM生成後の表示・操作・調整(表示順やインタラクション)
・エラー表示、警告
・htmlバリデーションのcheckValidityやreportValidity処理

フロントエンジニアの担当
・APIでデータ送受信
・propsで流し込み
2023/03/03(金) 12:03:53.67ID:aLTOWI5kM
>>670
それ専業のデザイナー置いても暇を持て余すような職場だろ
普通デザイナーにjsxなんて書かせないよ
2023/03/03(金) 12:14:59.23ID:o6EY7x580
ほとんどのエンジニアがhtmlもcssもまともに使えない職場みたいだからなw
2023/03/03(金) 12:33:55.85ID:DJxhSXLyr
職場じゃなくてそもそもエンジニアたちがhtmlとcssが絶望的にゴミレベルしかいないんだよ
海外でも同じ傾向がある

なのに自分たちはできると勘違いしてるから話が通じないんだよな
2023/03/03(金) 13:31:04.49ID:o6EY7x580
jquery使えます!って嘘ついたデザイナーの尻拭いをさせられたことはあったな
2023/03/03(金) 13:32:46.28ID:yQajwbSzM
>>673
そういうお前は逆にサーバサイドは絶望的な腕前なんじゃないの?
2023/03/03(金) 15:00:35.71ID:DJxhSXLyr
>>675
わざわざ煽りご苦労
サーバーサイドが絶望的どころかサーバーサイドもやってるが?
むしろフロントよりも先にサーバーサイドからやってたわ
2023/03/03(金) 15:24:30.84ID:yQajwbSzM
>>676
という人がどれだけいるのって話でしょ。
おれもサーバサイドの人というか、むしろwebじゃないサーバの人だけど。
2023/03/03(金) 18:33:43.53ID:omRbdhVsr
やたらイキって言葉遣いが悪いのと同じ回線だと肩身が狭い・・・
2023/03/03(金) 21:01:23.22ID:bsut6PhH0
>>670
デザイナーはせいぜいコンポーネント作ってStoryBookに載せるまでが責務だろw
2023/03/03(金) 22:20:39.69ID:Q9LzyMl00
プログラマにバカにされてreact勉強中のデザイナー様が激おこです
2023/03/03(金) 22:30:19.52ID:yxGxd3AO0
webデザイナーってjqueryぐらいまでは覚えさせられたかもだけど
流石にreactやvueまでやれってのは酷ではw
そんなのフロントエンドエンジニアの仕事でしょw
2023/03/03(金) 23:30:24.99ID:Q9LzyMl00
だってフロントエンドエンジニアはhtmlもcssもわからないバカばっかりなんだもん
2023/03/04(土) 18:46:55.35ID:erCI1bTUH
javascriptコードでバグの伝搬を制限して拡張性を高める必要性のある堅牢なプログラムなんて不要だからでしょ
2023/03/04(土) 18:52:38.30ID:erCI1bTUH
みんななんで仲良くなれないかな
2023/03/05(日) 16:50:40.53ID:RB9OOifa0
仕事だし自分の領域に少なからず関わってくるんだから覚えろよ
わからないじゃねーんだよボケ^^
これでよし
2023/03/11(土) 23:19:16.39ID:qvilA0zq0
sortメソッドは必ず、比較関数と一緒に使用する必要ありますか?
sortメソッドは数値を並びかえだと比較関数と一緒でないとうまくいかなくて、
でも、文字列のソートなら、ソート関数なくてもうまくいくみたい。
sortは文字列でも数値でもソート関数使った方がいいのでしょうか?
2023/03/12(日) 04:39:15.28ID:PQcYNrkb0
>>686
疑問に思うことがあれば、まずMDNで関数の仕様を確認してみるといい
sort 関数なら、解説に関数を指定しなかった場合についてもちゃんと書いてある

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

> compareFn が与えられなかった場合、undefined 以外のすべての配列要素は文字列に変換され、文字列が UTF-16 コード単位順でソートされます。例えば、"banana" は "cherry" の前に来ます。数値のソートでは、9 が 80 の前に来ますが、数値は文字列に変換されるため、Unicode 順で "80" が "9" の前に来ます。undefined の要素はすべて、配列の末尾に並べられます。
2023/03/12(日) 09:33:44.40ID:do9jOqKh0
>>687
ありがとうございます。
689デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])
垢版 |
2023/03/12(日) 10:07:09.74ID:mPShShEs0
ティラノスクリプトでゲーム作ろうとしたら、結局JSまで触らないと無理そうで及び腰・・・
・例えば変数aに"gazou1"という文字列を入れる
・『【"変数a"+.jpg】を表示』みたいな記述?? ←ここが分からない
・結果、gazou1.jpgが表示される
こんな感じの、変数に入れた文字列を使用して画像表示ってできますか?
JS 変数 画像表示 とかで調べても情報が多すぎてさっぱり分からない
2023/03/12(日) 11:40:49.62ID:SvUIzONJr
>>689
専用の掲示板へどうぞ
https://tyrano.jp/home/bbs
2023/03/12(日) 12:27:02.18ID:mPShShEs0
>>690
誘導ありがとうございます
ティラノだけでは無理そう&ティラノ上ではJSの記述が使える、という事でこちらで質問しました
なのでJSで可能か不可能かだけでも教えて頂けると助かります
JSで不可能なら調べたところで出て来ないでしょうから延々調べ続けるはめに・・・
2023/03/12(日) 12:49:02.36ID:PwnTbWEur
>>691
まずはティラノスクリプトに詳しい人に聞いてみるのが筋ではないですか?
同じ問題に遭遇した人もきっといるはずでノウハウも蓄積されてると思いますよ
wikiなんかもあるようですし、そちらも確認してみましたか?
2023/03/13(月) 10:07:27.43ID:/ROF2oq40
>>689
こういうこと?
===============================
<body>
<a href='#' onclick='fun'>link</a>
</body>

<script>
function fun(){a.href='https://....'}
</script>
===============================

===============================
<body>
<a href='#' id='href'>link</a>
</body>

<script>
href.onclick=function(){a.href='https;//...'}
---------------------
// または
let aLink=document.querySelector('[a]');
aLink.addEventListener('click',()=>{a.href='https://...'}):
</script>
================================
2023/03/13(月) 17:49:23.15ID:dqLl9/D/M
>>681
むしろjQueryの方が難しいと思うけど...
2023/03/13(月) 19:09:00.85ID:LN5ju60U0
>>693
表示する画像を変数を使って切り替えたいので、
if 変数a=='花' なら 花.jpg を表示 else 変数a=='山' なら 山.jpg を表示
みたいな感じで一応は表示できるのですが、表示したい箇所が複数あるので
if 変数b=='花' とか if変数c==’’花' とかで凄く長くなりそうなのです
でももし 変数の中身+.jpg みたいな記述がjsに存在するなら
aの場所には 変数aの中身+.jpgを表示 bの場所には変数bの中身+.jpg みたいに凄く簡略化できるかなって

教えて頂いたコードを調べてみます!ありがとうございます!
2023/03/13(月) 19:18:34.65ID:z8Hv0b/wr
>>695
他板にティラノスクリプトスレがあったんで
専用掲示板より5chがいいのであれば続きはそちらでどうぞ
https://mevius.5ch.net/test/read.cgi/gamedev/1428724538/
2023/03/13(月) 19:42:26.91ID:LN5ju60U0
>>696
そこは質問スレじゃないのでどうにも質問しづらくて
とうかJSの質問スレでJSの質問してるのに「ティラノ上で動かしてる」ってだけで、
そこまで「よそいけ、よそいけ」って言わなくても・・・
2023/03/13(月) 20:03:21.60ID:z8Hv0b/wr
>>697
>そこは質問スレじゃないのでどうにも質問しづらくて
そのスレを「質問」で検索してみると皆質問してるのが分かります
気後れする必要はないと思いますよ

>とうかJSの質問スレでJSの質問してるのに>「ティラノ上で動かしてる」ってだけで、
>そこまで「よそいけ、よそいけ」って言わなくても・・・
あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです
それについてはこのスレよりティラノスレや専用掲示板の方が的確なアドバイスが得られるはずです
違いますか?
2023/03/13(月) 20:12:22.98ID:z8Hv0b/wr
ついでに「ティラノ上で動かしてる」JSについてもそちらで聞いた方が良いでしょう
ティラノスレを見渡すとJSのコードもたくさん貼ってありますよ
700デフォルトの名無しさん (ワッチョイ 6701-QDb6 [60.116.224.81])
垢版 |
2023/03/13(月) 20:21:27.02ID:LN5ju60U0
>>698
>あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです
違います。自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です
最初にティラノの名を出したことで誤解を招いたかも知れませんが、
>>689に >JS 変数 画像表示 とかで調べても
>>691に >なのでJSで可能か不可能かだけでも教えて頂けると助かります
と書いてあるように、ティラノではなく、あくまでJSについて尋ねています
2023/03/13(月) 20:45:42.74ID:z8Hv0b/wr
>>700
>自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です
では聞きますが、それが何のために必要なのですか?
2023/03/13(月) 20:57:54.94ID:ayGBKgIT0
拡張子を付加する機能は無いよ
WBC始まってキャッチボールしたい気持ちはわからんでもないけども
2023/03/13(月) 20:58:10.41ID:bqu+B+fY0
>>700
> 「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」

はい。可能です
imgタグにデータURLを引き渡し表示することはごく普通に見ることができます
Base64エンコードされた文字列とmediatypeをセットするだけです
2023/03/13(月) 20:59:33.75ID:1Iq9NysVM
>>700
あなたの質問はjavascriptの質問ではありますがティラノスクリプトの仕様を知らないと答えられないものです
こちらはティラノスクリプトの仕様を知らないのであなたの代わりに調べることから始めなければなりません
ティラノスレであれば詳しい人がいると思うのでそちらへどうぞ
2023/03/13(月) 21:59:41.61ID:LN5ju60U0
>>701
上述の通りゲーム作成と作業の簡略化のためです
>>702
拡張子の付け足しは誤解を招く表現でした。変数の中にある文字列と同じ名前の画像を表示するってことです
>>703
ありがとうございます。調べてみます
>>704
あくまでJSの事として聞いているので「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」って感じの答えで十分です
ティラノスレでJSのこと聞くよりJSスレでJSのこと聞く方が早そう、って考えはそこまで変ですか?
2023/03/13(月) 22:18:31.29ID:z8Hv0b/wr
>>705
>上述の通りゲーム作成と作業の簡略化のためです
それは「ティラノスクリプトで変数に応じた画像表示する」こととは違うのですか?

>「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」
このスレでそんな回答をもらうよりはティラノスレで質問して
「ティラノスクリプトではみんなこうやってるよ」って回答をもらう方が何倍も早くて確実だと思いますがいかがでしょう
2023/03/14(火) 01:06:18.93ID:VmfXTFqwa
例えば、jQuery で、

<img id="photo_1" src="a.png">
を、以下に変更するなら
<img id="photo_1" src="image_1.jpg">

// :first は、最初に見つかったもの
$( '#photo_1:first' ).each( function ( index, elem ) {

const image_1_basename = "image_1"
const image_1_filename = image_1_basename + ".jpg"

$(this).attr('src', image_1_filename) // 設定
} )
2023/03/14(火) 02:37:35.49ID:JIhs77SCM
JSスレでJSのこと聞きたいんならティラノの名前出すなよ
2023/03/14(火) 08:16:42.83ID:gMQMDZBfd
それはそう
2023/03/14(火) 13:16:01.19ID:bBCbUtGh0
jpegの名前を動的に指定できるよ
2023/03/14(火) 13:21:05.82ID:crjDIavXr
>>705
ティラノについて少し調べたのでスレ違いを承知の上で書きます
あなたが>>689>>695でやりたいことは
[bg storage="&f.bg + '.jpg'" time=1000]
というような書き方で実現できるかと思います

簡単に説明します
まず「&f.bg」の「&」はエンティティと呼ばれるもので変数の値をタグのパラメータとして渡すときに使用します
https://tyrano.jp/usage/tech/hensuu
の最後に説明があります

そして、storageパラメータに渡す際に「 + '.jpg'」で拡張子を連結しています。これは
https://tyrano.jp/sample2/code/kiso/19#demo
のkaisetsu/19_variable_1.ksの415行目~に変数に対して数値演算をした値を
パラメータに渡す例がありました。文字列の連結も同様に可能です

これによって、変数f.bgの値が「花」ならば「花.jpg」が、「山」ならば「山.jpg」が表示されます
例は背景ですがキャラやその他の画像でも可能だと思います
2023/03/14(火) 13:30:55.51ID:crjDIavXr
>>705
なお、簡単なサンプルで動作確認をしました
https://tyrano.jp/usage/tutorial/moji
上記チュートリアルに従って新規プロジェクトを作成し、
first.ksの内容を以下のように書き換えて実行してみてください

*start
[wait time=100]

背景を変更します。[r]
[link target=*select_room]<教室>[endlink][r]
[link target=*select_rouka]<廊下>[endlink][r]
[s]

*select_room
[eval exp="f.bg='room'"]
[jump target=end_select]

*select_rouka
[eval exp="f.bg='rouka'"]
[jump target=end_select]

*end_select
[cm]
[bg storage="&f.bg + '.jpg'" time=1000]
[jump target=start]
2023/03/14(火) 20:28:58.71ID:2HNLo12V0
>>711
ありがとうございます!!できました!!
2023/03/14(火) 20:53:16.27ID:2HNLo12V0
作業が一気に楽になりました!
>>711も他の方も本当にありがとうございました!
そして不可能と思いこんでたことが実は可能だったあたりはすみませんでした!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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