有人可以帮助我解决此语法错误吗?

时间:2019-12-03 19:11:09

标签: javascript php syntax

嗨,我正在php页面上尝试以下代码。由于下面显示的函数openCity()的参数“伦敦”周围的单引号引起了语法错误。

echo '<button class="tablinks" onclick="openCity(event, 'London')">London</button>';

如果我删除涵盖“伦敦”的单引号并在其中添加双引号,则该功能无法正常工作。我没看到什么?有办法解决这个问题吗?

openCity()javacript函数如下所示。

function openCity(evt, cityName) {
  var i, tabcontent, tablinks;
  tabcontent = document.getElementsByClassName("tabcontent");
  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }
  tablinks = document.getElementsByClassName("tablinks");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }
  document.getElementById(cityName).style.display = "block";
  evt.currentTarget.className += " active";
'''


What I am trying to do is when a user clicks the button, it shows a block of elements (Like a tabs).

1 个答案:

答案 0 :(得分:-1)

您没有在echo语句中的'London'字符串中转义引号。您需要使用反斜杠(\)来防止这种情况。

echo '<button class="tablinks" onclick="openCity(event, \'London\')">London</button>';

如果不转义,您的代码将认为字符串在第一个引号处结束。