- HOME
- > BLOG CATEGORY
- 【jQuery】特定の文字列前に改行を挿入する方法

- お知らせ
- NEW 2025.04.05 【jQuery】特定の文字列前に改行を挿入する方法
- お知らせ
- NEW 2025.04.05 【WordPress】MW WP Form バリデーションのカスタマイズについて
- お知らせ
- 2025.02.24 【CSS】点線の間隔を調整する方法を解説
こんな方に読んでほしい
[記事の内容]
特定の文字列(この場合は「開催」)の前にbr
タグを挿入して改行する処理を行うため、主に以下のような場面で使用されます。
・イベントリストやニュース記事のタイトルなど、特定の文字列を基準に自動で改行処理を行いたい場合に便利です。
・例えば、イベントリストのタイトルが長すぎる場合に、「〇〇」という文字列の前にbr
タグを挿入することで、タイトルを2行に分けて表示できます。
私の場合ですが、今回はWordPressでカテゴリーを「東京開催」「名古屋開催」などを作成し変な場所で改行がされ、表示の見え方が悪くなったので、それをjQueryでうまくコントロールできたので記事にしました。
基本的にはbody
内に指定するようにしましょう。
基本構造の書き方は以下のようになります。
デモサイトはコチラから。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>【jQuery】特定の文字列前に改行を挿入する方法</title>
</head>
<body>
<ul id="catlist">
<li><a href="#" class="is-active">東京開催</a></li>
<li><a href="#">大阪開催</a></li>
<li><a href="#">愛知開催</a></li>
<li><a href="#">神奈川開催</a></li>
<li><a href="#">京都開催</a></li>
<li><a href="#">福岡開催</a></li>
</ul>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
function insertBreakBeforeKaiSai(element) {
const text = element.textContent;
if (text.includes('開催')) {
const newText = text.replace('開催', '<br>開催');
element.innerHTML = newText;
}
}
window.addEventListener('load', function() {
const listItems = document.querySelectorAll('#catlist li a');
listItems.forEach(item => {
insertBreakBeforeKaiSai(item);
});
});
</script>
</body>
</html>
insertBreakBeforeKaiSai(element)
関数element
)内のテキストを操作します。element.textContent
で要素内のテキストを取得し、text
変数に格納します。text.includes('開催')
でテキスト内に「開催」という文字列が含まれているかを確認します。text.replace('開催', '開催')
で「開催」の前にelement.innerHTML = newText
で要素内のHTMLを更新し、改行を反映させます。window.addEventListener('load', ...)
処理document.querySelectorAll('#catlist li a')
で、id
がcatlist
のリスト要素内のリンク要素をすべて取得し、listItems
変数に格納します。listItems.forEach(item => { ... })
で、取得した各リンク要素に対して insertBreakBeforeKaiSai
関数を実行し、改行処理を行います。上記の場合のコードはPC、スマホサイトどちらにも適用されます。
スマホサイトのみに適用させたい場合は以下のようになります。
<script>
function insertBreakBeforeKaiSai(element) {
if (window.matchMedia('(max-width: 767px)').matches) {
const text = element.textContent;
if (text.includes('開催')) {
const newText = text.replace('開催', '<br>開催');
element.innerHTML = newText;
}
}
}
window.addEventListener('load', function() {
const listItems = document.querySelectorAll('#catlist li a');
listItems.forEach(item => {
insertBreakBeforeKaiSai(item);
});
});
</script>
今回はこれで以上です。
text.replace('開催', '開催')
「開催」という文字列をbr
開催に置換します。document.querySelectorAll('#catlist li a')
:CSSセレクタを使用して、特定の要素(この場合は#catlist li a
)をすべて取得します。2025.01.18
2022.05.24
2022.05.10
2022.05.06
2025.04.05
2025.04.05
2025.02.24
2025.01.25
2025.01.18
2025.01.18
2023.06.15
2022.06.30
2020.03.22
2020.03.06
© 2024 shu-naka-blog