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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

Q&A

解決済

2回答

2163閲覧

jqueryでスマホのときだけタグを追加したい

korokorota

総合スコア40

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

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

0グッド

0クリップ

投稿2017/02/22 08:05

編集2017/02/22 09:02

やりたいこと

html

1<table> 2 <tr> 3 <th class="test">タイトル01</th> 4 <td>内容01</td> 5 </tr> 6 <tr> 7 <th class="test">タイトル02</th> 8 <td>内容02</td> 9 </tr> 10</table>

このようなhtmlを、スマホのときは下記のように書き換えたいです。

html

1<table> 2 <tr> 3 <th class="test">タイトル01</th> 4 </tr> 5 <tr> 6 <td>内容01</td> 7 </tr> 8 <tr> 9 <th class="test">タイトル02</th> 10 </tr> 11 <tr> 12 <td>内容02</td> 13 </tr> 14</table>

試してみたこと

JavaScript

1<script type="text/javascript" src="../common/js/jquery-1.11.1.min.js"></script> 2<script> 3if(navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)){ 4$(</th>).replaceWith("</th></tr><tr>"); 5} 6</script>

JavaScript

1<script type="text/javascript" src="../common/js/jquery-1.11.1.min.js"></script> 2<script> 3if(navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)){ 4 $("th.test").after("</tr><tr>"); 5} 6</script>

どちらも上手くいかず、どうしたら解決できるのか解りません。
どなたかご教授いただけないでしょうか。
よろしくお願いいたします。

追記

PCでは<th><td>を横並びにした2列表示ですが、スマホでは横並びではなく縦に表示させたいと思っています。
説明が解りづらくて申し訳ありません。

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

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

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

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

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

guest

回答2

0

ベストアンサー

replaceを使いこのように行うと良いとおもいます。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>タイトル</title> 6 <style type="text/css"> 7 * { 8 margin: 0; 9 padding: 0; 10 } 11 </style> 12</head> 13<body> 14<div id="box"> 15 <table> 16 <tr> 17 <th class="test">タイトル01</th> 18 <td>内容01</td> 19 </tr> 20 <tr> 21 <th class="test">タイトル02</th> 22 <td>内容02</td> 23 </tr> 24 </table> 25</div> 26<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 27<script> 28 $(document).ready(function () { 29 if (navigator.userAgent.match("iPhone") 30 || navigator.userAgent.match("iPhone") 31 || navigator.userAgent.match("iPad") 32 || navigator.userAgent.match("iPod") 33 || navigator.userAgent.match("Android") 34 ) { 35 $("table").each(function () { 36 $(this).html($(this).html().replace(/\<\/th\>/g, "</th></tr><tr>")); 37 }); 38 } 39 }); 40</script> 41</body> 42</html>

投稿2017/02/22 08:47

編集2017/02/22 08:47
s8_chu

総合スコア14731

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

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

korokorota

2017/02/22 09:10

早速回答いただきありがとうございます。 書いていただいたものに書き換えたところ、無事表示できました! replaceの記述が間違っていたのですね。 もっと勉強します。 本当にありがとうございました。
guest

0

onloadイベント後にやらないとダメなのでは?つまり

javascript

1$(function(){ 2///ここにコードを書く 3});

投稿2017/02/22 08:15

turbgraphics200

総合スコア4267

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

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

korokorota

2017/02/22 08:39 編集

回答ありがとうございます。 全くの初心者で非常に申し訳ないのですが、下記のように書き換えてみましたがうまくいきませんでした。 どこか記述の仕方が間違えているでしょうか? <script> if(navigator.userAgent.match(/(iPhone|iPad|iPod|Android)/)){ $(function(){ $( "th.test" ).after( "</tr><tr>" ); }); } </script>
turbgraphics200

2017/02/22 08:49

具体的にどのように変更したいのかを質問内容に追記してください。
korokorota

2017/02/22 09:08 編集

ご指摘ありがとうございます。 質問内容に追記いたしましたが、解りづらいかもしれません。 内容が拙くてすみません。 今回はs8_chu様の回答で無事解決できました。 早々に回答いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問