【问题标题】:retrieve multiple html values in javascript在javascript中检索多个html值
【发布时间】:2022-01-15 23:59:40
【问题描述】:

在我的node.js 后端,我有这个:

  {
    DATE: '2021-12-11 02:17:59.317432',
    LOCATION: 'Location',
    ASSIGNED_TRAINER: 'john.smith7@g.com',
    CLIENT_USERNAME: 'Test User Name'
  },
  {
    DATE: '2022-01-04 02:27:11.278146',
    LOCATION: 'Location',
    ASSIGNED_TRAINER: 'john.smith7@g.com',
    CLIENT_USERNAME: 'Test User Name'
  },
  {
    DATE: '2021-12-15 10:30:00.000000',
    LOCATION: 'Location',
    ASSIGNED_TRAINER: 'john.smith7@g.com',
    CLIENT_USERNAME: 'Test User Name'
  }

在前端,我正在尝试获取DATE 字段。所以我要做的是:

 <% if (data.length) {
    for(var i = 0; i < data.length; i++) { %>
      <input type="text" name="passedDates" id="passedDates" value="<%= data[i].DATE %>">
      <%  }
    } else { %>
   <% } %>

然后在我的&lt;script&gt; 标签中,我所做的是:

  for ( var z = 1; z <= lastDayOfM; z++ ) {
    
    const yourDate = new Date()
    var theDate = yourDate.toISOString().split('T')[0]

*这里我试图获取通过 id 'passedDates' 传递的值

    var passedDates = document.getElementById("passedDates").value

    var finalDate = passedDates.split('-');

    var yyyy = finalDate[0];
    var mm = finalDate[1];
    var dd = finalDate[2];
    var theFinalDay = dd.split(' ')

然后我登录yyyymmdd,然后是theFinalDay[0]。但它不会在其中存储所有日期值。我需要把它们都放在那里,因为在下面时:

    // check if todays date
    if ( z == today.getDate() && y == today.getFullYear() && m == today.getMonth() ) {
      var myTestPassedDate = theFinalDay[0]
      if (myTestPassedDate) {

*这里我尝试在HTML 中插入一些东西,但它不会全部完成 3 个,因为它只存储一个。

 day.innerHTML = myTestPassedDate + "<br><img src='https://miro.medium.com/max/512/1*nZ9VwHTLxAfNCuCjYAkajg.png' style='height: 10px; width: 10px;'>"
 

 }
      day.classList.add("today");
    }

    

如何解决我正在尝试做的事情?抱歉,如果造成混淆,请随时提出问题。

【问题讨论】:

  • 一个问题是您对多个输入字段使用相同的 HTML idgetElementById 选择器当然只会返回找到的第一个。除此之外-您可以添加您期望收到的内容吗? passedDates 不是保存您期望的日期的字符串值吗?您在解析字符串日期时遇到问题吗?
  • @MarcRo 实际上是有道理的。那么我如何从input 获取所有值呢?另外,我正在尝试所有days,以便我可以将html输出到页面

标签: javascript html node.js ejs


【解决方案1】:

要从您的输入中获取所有日期,您可以这样做:

  1. 在您的输入字段中添加一个类,例如js-date

  2. 选择所有输入并获取它们的值

const getDatesFromInputs = (className) => {
  const inputNodes = document.querySelectorAll(className); // get us a NodeList
  const inputArray = Array.from(inputNodes); // turn NodeList into Array to access .map() function

  const dates = inputArray.map((inputEl) => new Date(inputEl.value));
  return dates // return Array of dates
};
  1. 随心所欲地处理日期(我不明白你想用它们做什么)
const datesFromInput = getDatesFromInputs('.js-date');

const today = new Date();
const y = today.getFullYear();
const m = today.getMonth();
const d = today.getDate();

const isTodayInDates = datesFromInput.some((date) => date.getFullYear() === y && date.getMonth() === m && date.getDate() === d);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    相关资源
    最近更新 更多