JavaScript - No puedo capturar el valor seleccionado

 
Vista:
sin imagen de perfil
Val: 15
Ha aumentado su posición en 7 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

No puedo capturar el valor seleccionado

Publicado por Cristian (5 intervenciones) el 11/01/2019 19:23:12
Hola a todos:

Les cuento, tengo un calendario hecho con javascript y html, ahora quiero intentar tomar el numero correspondiente del día seleccionado. Cuando el calendario genera el primer mes, puedo seleccionar el día sin problemas, pero si cambio el mes del calendario ya no puedo obtener el valor seleccionado.

este es el javascript

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
var monthNames = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
 
var currentDate = new Date();
var currentDay = currentDate.getDate();
var monthNumber = currentDate.getMonth();
var esteMes = monthNumber;
var currentYear = currentDate.getFullYear();
 
var dates = document.getElementById('dates');
var month = document.getElementById('month');
var year = document.getElementById('year');
 
var prevMonthDOM = document.getElementById('prev-month');
var nextMonthDOM = document.getElementById('next-month');
 
month.textContent = monthNames[monthNumber];
year.textContent = currentYear.toString();
 
prevMonthDOM.addEventListener('click', function () {
    return lastMonth();
});
nextMonthDOM.addEventListener('click', function () {
    return nextMonth();
});
writeMonth(monthNumber);
function writeMonth(month) {
    for (var i = startDay(); i > 0; i--) {
        dates.innerHTML += ' <div class=" calendar__last-days">\n        ' + (getTotalDays(monthNumber - 1) - (i - 1)) + '\n</div>';
    }
    for (var _i = 1; _i <= getTotalDays(month); _i++) {
        if (_i === currentDay && monthNames[esteMes]== monthNames[month] ) {
            console.log(monthNames[month]);
            console.log(monthNames[esteMes]);
            dates.innerHTML += ' <div class="calendar__date calendar__item calendar__today">' + _i + '</div>';
        } else {
            dates.innerHTML += ' <div class="calendar__date calendar__item">' + _i + '</div>';
        }
    }
}
function getTotalDays(month) {
    if (month === -1) month = 11;
 
    if (month == 0 || month == 2 || month == 4 || month == 6 || month == 7 || month == 9 || month == 11) {
        return 31;
    } else if (month == 3 || month == 5 || month == 8 || month == 10) {
        return 30;
    } else {
        return isLeap() ? 29 : 28;
    }
}
function isLeap() {
    return currentYear % 100 !== 0 && currentYear % 4 === 0 || currentYear % 400 === 0;
}
function startDay() {
    var start = new Date(currentYear, monthNumber, 1);
    return start.getDay() - 1 === -1 ? 6 : start.getDay() - 1;
}
function lastMonth() {
    if (monthNumber !== 0) {
        monthNumber--;
    } else {
        monthNumber = 11;
        currentYear--;
    }
    setNewDate();
}
function nextMonth() {
    if (monthNumber !== 11) {
        monthNumber++;
    } else {
        monthNumber = 0;
        currentYear++;
    }
    setNewDate();
}
function setNewDate() {
    currentDate.setFullYear(currentYear, monthNumber, currentDay);
    month.textContent = monthNames[monthNumber];
    year.textContent = currentYear.toString();
    dates.textContent = "";
    writeMonth(monthNumber);
}


este es el html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!doctype html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/styles.css">
    <link rel="stylesheet" href="/css/bootstrap.css">
    <title>Calendario Interactivo jaja</title>
</head>
<body>
<div class="contenedor__general">
    <h1 class="title">Calendario ql</h1>
    <div class="grid__calendario">
    <div class="calendar">
        <div class="calendar__info">
            <div class="calendar__prev" id="prev-month">&#9664;</div>
            <div class="calendar__month" id="month"></div>
            <div class="calendar__year" id="year"></div>
            <div class="calendar__next" id="next-month">&#9654;</div>
        </div>
        <div class="calendar__week">
            <div class="calendar__day ">Lun</div>
            <div class="calendar__day ">Mar</div>
            <div class="calendar__day ">Mie</div>
            <div class="calendar__day ">Jue</div>
            <div class="calendar__day ">Vie</div>
            <div class="calendar__day ">Sab</div>
            <div class="calendar__day ">Dom</div>
        </div>
        <div class="calendar__dates" id="dates">
 
        </div>
    </div>
    <div class="agendar__hora">
        <h2>selecciona el día que mas te acomoda.</h2>
        <div class="formulario">
            <form action="" id="agendarCita">
                 <label for="">Nombre:</label>
                 <input type="text" name="nombre" id="nombre">
                 <label for="">Apellidos</label>
                 <input type="text" name="apellido" id="apellido">
                 <label for="">Email:</label>
                 <input type="email" name="email" id="email">
                 <label for="">Número de contacto</label>
                 <input type="tel" id="telefono" name="telefono">
                 <input type="Submit" value="Agendar" id="enviar" class="btn ">
            </form>
            <div class="horas" id="horas">
 
            </div>
        </div>
    </div>
    </div>
</div>
<script src="js/jquery-3.3.1.js"></script>
<script src="js/scripts-dist.js" charset="utf-8"></script>
<script src="js/bootstrap.js" charset="utf-8"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('.calendar__item').on("click", function() {
            let day = $(this).html();
            console.log(day);
        })
    });
 
</script>
</body>
</html>

De antemano gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder