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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

Q&A

0回答

650閲覧

インクリメンタルサーチで検索した時、「いいねマーク」も表示させたい

kokosi1062

総合スコア39

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

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

0グッド

0クリップ

投稿2020/04/20 08:23

#前提・実現したいこと
インクリメンタルサーチで、検索を実装した時、コンテンツを表示させることができます。
今回はコンテンツだけでなく、いいねマークも表示させたい、内容となります。

#該当のソースコード

html

1<div class="like-link" id="like-link-<%= memo.id %>"> 2 <% if current_user.likes.find_by(memo_id: memo.id) %> 3 <%= link_to unlike_path(memo.id), method: :delete, remote: true do %> 4 <div class = "iine__button"><i class="fas fa-thumbs-up"></i><%= memo.likes.count %></div> 5 <% end %> 6 <% else %> 7 <%= link_to like_path(memo.id), method: :post, remote: true do %> 8 <div class = "iine__button"><i class="far fa-thumbs-up"></i><%= memo.likes.count %></div> 9 <% end %> 10 <% end %> 11</div>
$(function() { var search_list = $(".contents"); function appendMemo(memo) { var like = `<div class="like-link" id="like-link-${memo.id}"> <a data-remote="true" rel="nofollow" data-method="delete" href="/like/${memo.id}"> <div class="iine__button"> <i class="fas fa-thumbs-up"></i>${memo.likes} </div> </a> <a data-remote="true" rel="nofollow" data-method="post" href="/like/${memo.id}"> <div class="iine__button"> <i class="far fa-thumbs-up"></i>${memo.likes} </div> </a> </div> ` var html = `<a class="contents__post" href="/memos/${memo.id}">${memo.title}</a> ${like} ` search_list.append(html); } function appendErrMsgToHTML(msg) { var html = `<div class='name'>${ msg }</div>` search_list.append(html); } $(".fa").on("keyup", function() { var input = $(".fa").val(); $.ajax({ type: 'GET', url: '/memos/search', data: { keyword: input }, dataType: 'json' }) .done(function(memos) { search_list.empty(); if (memos.length !== 0) { memos.forEach(function(memo){ appendMemo(memo); }); } else { appendErrMsgToHTML("一致するツイートがありません"); } }) .fail(function() { alert('error'); }); }); });

#試したこと

var htmlはコンテンツを表示させます。
var likeでいいねマークを表示させたい。

現段階では、いいねマークの「色塗り」と「色なし」が同時に表示しています。
テンプレートリテラルで、if文を書く時、どのように記述したら良いでしょうか?

js

1 var search_list = $(".contents"); 2 3 function appendMemo(memo) { 4 5 6 var like = `<div class="like-link" id="like-link-${memo.id}"> 7 8 <a data-remote="true" rel="nofollow" data-method="delete" href="/like/${memo.id}"> 9 <div class="iine__button"> 10 <i class="fas fa-thumbs-up"></i>${memo.likes} 11 </div> 12 </a> 13 14 15 <a data-remote="true" rel="nofollow" data-method="post" href="/like/${memo.id}"> 16 <div class="iine__button"> 17 <i class="far fa-thumbs-up"></i>${memo.likes} 18 </div> 19 </a> 20 </div> 21 22 ` 23 24 var html = `<a class="contents__post" href="/memos/${memo.id}">${memo.title}</a> 25 ${like} 26 ` 27 search_list.append(html); 28 }

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問