x49_n
@x49_n (らむ)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

カレンダー クリックした日にちを取得したい

初心者です。
カレンダーを作ったのですが、クリックしたらその日の日にちを取得し、別の日にちをクリックすると新たにクリックした日にちを取得するプログラムを作りたいです。

tableのtdの値を取得したいです。

(例) HTML









1 2 3 4 5

ここにクリックした日にちを出力したい

クリックしたらその日にちの枠の色が変わるようにすることはできました。
(現状) JS
$(function() {
$("td").on("click", function() {
$("td").removeClass("select");
$(this).addClass("select");
});
});

0

2Answer

出力したいdivにidなどの目印を付けて上げれば出力出来ます。

<div id="clickedDate"></div>

JavaScript側は @nyandoraさんの回答を流用するとこんな感じかな?

$(function() {  
  $("td").on("click", function() {
    $("td").removeClass("select");
    $(this).addClass("select");
    $("#clickedDate").text($(this).text())
  });
});

日にち以外に年月日を出したいとかだとtdタグに工夫が必要で、
data属性で年月日情報を持たせてあげてそのデータを使うことで、
日付以外の情報なども取得することが可能ですよ。

<td data-date="2021/01/01">1</td>
$(function() {  
  $("td").on("click", function() {
    $("td").removeClass("select");
    $(this).addClass("select");
    $("#clickedDate").text($(this).data("date"))
  });
});
1Like

Comments

  1. @x49_n

    Questioner

    ご回答ありがとうございます!
    助かりました。

以下のようにすると、「クリックした部分の日付」を取得できると思います。

$(function() {  
  $("td").on("click", function() {
    $("td").removeClass("select");
    $(this).addClass("select");

    // text()メソッドを使えば、<td>で囲まれたテキスト部分を取得できます。
    console.log($(this).text());
  });
});
0Like

Comments

  1. @x49_n

    Questioner

    ご回答ありがとうございます!
    さらに、質問したいのですが、同階層にあるphpファイルの<div></div>内に
    console.log($(this).text());を出力したいのですが、
    <script type="text/javascript" src= "sample.js">console.log($(this).text());</script>
    を記述後にtdをクリックしても出力されなくて困っています。
    独学でやっているので、力を貸してもらえると嬉しいです。
  2. @AsiHatake さんが素敵にご回答くださってますので、ご覧ください!

Your answer might help someone💌