div id 匹配 getFullYear 日期的公式

Formula for div id to match a getFullYear date

我有一些待处理的代码无法运行,因为我认为我正在比较 if 语句中的两种不同类型的数据,但我终究无法弄清楚如何让它们与每个数据进行比较其他妥妥的。我想获取当前年份并将其与同样标有年份的 div 标签的 ID 进行比较。我的示例代码(使用 W3 fiddler 进行测试):

<!DOCTYPE html>
    <html>
    <body onload="myFunction()">
    
    <h2>Test Code</h2>
    
    <p id="2021"></p>

    <script>
    function myFunction() {
      var actualYear = new Date().getFullYear();
      var divName = document.getElementById(actualYear);
        
      if (divName = actualYear) {
        document.writeln(actualYear);
        document.writeln(divName);
        }
    }
    </script>
    
    </body>
    </html>

此代码正确获取了 actualYear 的“2021”这一完整年份,并且它从 divName 的“2021”的 div id 中提取了正确的文本,但是当我更改if 语句包含“==”以要求完全匹配公式中断,即使我从上面的代码片段中得到完全匹配。我尝试将 parseInt 添加到 divName 代码,但这不起作用。我在末尾添加了 .innerHTML ,这确实有效,但出于我的目的,我不能在本节的 div 标签之间有任何 HTML,所以这不是一个选项。有什么建议或巧妙的解决方法吗?

您的变量 divName 不包含 id 属性,而是包含整个 HTMLElement。所以你需要把它改成

  var actualYear = new Date().getFullYear();
  var divName = document.getElementById(actualYear).getAttribute("id");
    
  if (divName === actualYear) {
    document.writeln(actualYear);
    document.writeln(divName);
  }