質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

2回答

889閲覧

コードの評価願いコードの評価願い

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2022/01/08 11:38

編集2022/01/12 06:27

こんばんは、お世話になります。

もっとこういう書き方がある、こう書いた方が速くなる、など評価や修正を頂けると嬉しいです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

jQuery3以降は$(document).ready(function() ...は非推奨で、$(function() ...で良いそうです。
参考

ただ、どちらの書き方であれ、ready(DOMContentLoadedイベント)のタイミングまで待つと、元のulが一瞬見えてしまう事もあるので、スクリプトで動的に書き換えるというやり方自体が、良い解決策ではない気がします。可能ならテンプレ触るのが一番だと思います。

WordPressのscriptタグがどこに挿入されるのか知らないですが、可能ならul要素が出てきた後のbodyタグ内にできるだけ早く、readyイベント抜きのベタ書きにして、チラつきの可能性を下げるのが良いと思います。

試しに書き替えてみたソースも一応貼っときますが、あまり変わらないので参考程度で。

javascript

1const $ul = $('.sidebar ul') 2const $select = $('<select onChange="location.href=value;"><option>-</option></select>') 3 4$(`a`, $ul).each(function() { 5 const $a = $(this) 6 $select.append(`<option value="${$a.prop('href')}">${$a.text()}</option>`) 7}) 8 9$ul.replaceWith($select)

投稿2022/01/08 14:19

umau

総合スコア805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

jQueryを不要とし1行で済むこと。

js

1<div class="sidebar"> 2<ol> 3 <li><a href="http://x.jp?abc">abc</a> 4 <li><a href="http://x.jp?def">def</a> 5 <li><a href="http://x.jp?ghi">ghi</a> 6</ol> 7</div> 8 9<select onchange="location.href=this.value"> 10<option value="">-</option> 11</select> 12 13<script> 14 15[...document.querySelectorAll ('.sidebar li a')].reduce ( 16 (a,b)=> (a.appendChild (new Option (b.textContent, b.href)), a) 17,document.querySelector ('select')); 18 19</script> 20

投稿2022/01/08 13:51

babu_babu_baboo

総合スコア616

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問