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

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

ただいまの
回答率

90.52%

  • jQuery

    6689questions

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

  • if

    203questions

    if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

if文を使った文字列比較

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 214

rrrrrrr

score 5

 if文を使った文字列比較

Jqueryでボタンを押したときニュースリストに新着ニュースを追加。
追加した新着ニュースがすでにある場合、追加をやめる。

 発生している問題

文字列を比較するための文字列取得方法がわからず・・・(:_;)
また、比較文もわからず・・・(:_;)

 該当のソースコード

<button id="button"> ボタン </button>

<!-- 新着ニュース -->
<ul class="List NewsList">
<li><span class="Time">10:43</span><a href="http://">aa</a></li>
<li><span class="Time">10:39</span><a href="http://">aaa</a></li>
<li><span class="Time">10:36</span><a href="http://">aaaa</a></li>
var $News='<li><span class="Time"></span><a href="https://">a</a></li>'
$(function(){
 $("#button").on("click",function(){
$(".NewsList").prepend($News);
});
});

宜しくお願いします・・・(:_;)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+4

文字列を比較するための文字列取得方法がわからず

↑どの文字を取得/比較したいのか明示されてないので、この部分はスキップします。

また、比較文もわからず

↑普通に「==」で比べればよろし。

console.log("abc" == "abc"); // true
console.log("abc" == "def"); // false

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+2

新着ニュースの時刻も含めてチェックをされますでしょうか?
もし、時刻はチェックせず内容のみのチェックであるのであれば
下記のような方法で比較ができると思います。

var news = "追加したいニュースのテキスト";

$(function(){
    $("#button").on("click", function(){
        var target = $(".List.NewsList li a");
        var len    = $(target).length;
        var result = false;
        for (var i = 0; i < len; i++) {
            var obj = $(target).get(i);
            if ($(obj).html() === news) {
                result = true;
                break;
            }
        }

        if (result === true) {
           // 一致する内容があったときの処理
        }
    });
});

別のやり方としては、ul内の文字列を全て取得してきて
一致する文字があるかどうかだけを見る方法でしょうか。

var target = $(".List.NewsList").html();
var search = "検索したい文字列";

var result = target.indexOf(search) >= 0;

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

id="button"を押したときにニュース情報を取得して、class="NewsList"内の記事タイトルと同じものがあるかどうかを比較。
という流れだと思いますが、どのような形式でニュース情報を取得してくるのかといった情報が足りないため、現状では正確なアドバイスができない状態かと思います。

また、比較の際は厳密比較(===)の方がより正確ですね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ほぼ答え

<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>


<button id="button"> ボタン </button>

<!-- 新着ニュース -->
<ul class="List NewsList">
    <li><span class="Time">10:43</span><a href="http://">aa</a></li>
    <li><span class="Time">10:39</span><a href="http://">aaa</a></li>
    <li><span class="Time">10:36</span><a href="http://">aaaa</a></li>
</ul>

    <script>
    // 追加する文字
    let $News='<span class="Time"></span><a href="https://">a</a>'

    // ページのロードが完了したときに実行される
    $(function(){
        // 「id="button"」の要素がクリックされたら
        $(document).on("click", '#button', function(){
            // すでにリストに追加されていたらtrueになる
            let flag = false;

            // ulリストの中身をすべて探索する
            $('ul.List li').each(function(){
                console.log($(this).html() + ' or ' + $News);
                if ($(this).html() === $News) {
                    // liの中身と追加したい文字列が一緒ならば
                    flag = true;
                }
            });

            // 追加
            if (flag === false) {
                $(".NewsList").prepend('<li>' + $News + '</li>');
            } else {
                alert('すでに追加されています');
            }

        });
    });
</script>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/17 15:05

    追加しようとするニュースのタイトルと同じものが既にあったら追加しない。という処理を教えていただけないでしょうか(:_;)!

    キャンセル

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

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • jQuery

    6689questions

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

  • if

    203questions

    if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。