【问题标题】:"combine this with previous var . . ." statement“将此与以前的 var 结合起来......”陈述
【发布时间】:2017-04-05 15:26:03
【问题描述】:

本网站上关于我的问题的其他答案没有帮助。希望能得到另一种看法。

我收到了这条消息:“将此与之前的 var 语句结合起来。var changeText = paragraph[1].style.fontStyle = "italic";"

我正在关注 YouTube 上的教程,我的代码与视频中该人的代码相匹配。我不得不添加“用户严格”;因为我是由 JSLint 指示的。但其他一切都是一样的。

为什么这段代码不起作用?

这是我的 HTML:

function changeStyle() {
    "use strict";
    var paragraph = document.getElementsByTagName("p");
    var changeText = paragraph[1].style.fontStyle = "italic";
}
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>JS Tutorials-2</title>
    <meta name="js tutorials-2" content="js tutorials-2">
    <link rel="stylesheet" href="js-tutorials-2.css">

</head>
<body>


    <header>
        <div class="banner"><h1 id="head">Javascript</h1></div>
        <div class="banner2"><h1 id ="another-head">The Adventure Begins</h1></div>
    </header>


            <p id = "para2">Text Goes Here </p>
            <p id = "para3">Text Goes Here</p>
            <p id = "para4">Text Goes Here </p>
            <p id = "para5">Text Goes Here</p>

            <button onclick = "changeStyle()">Submit</button>


</body>

【问题讨论】:

  • 这只是一个 JSLint 警告。它与代码的实际执行无关。例如:linterrors.com/js/combine-this-with-the-previous-var-statement
  • 来自该链接:“JSLint 不允许您在块之外简单地拥有多个变量语句,这只是作者 Douglas Crockford 首选的编码约定。” - 我不同意该编码约定,并且更喜欢多个var 组用于相关变量。例如,我可能有var grid = [...]; var x, y;... 归根结底,编码约定只是一个见仁见智的问题,它们更像是指导方针而不是实际规则。
  • @NiettheDarkAbsol 所说的 - 一定要阅读 Crockford 并理解 为什么 他使用某些约定,然后自行决定是否同意。不要盲目地应用它们而不知道它们是什么以及它们为什么存在。

标签: javascript jslint


【解决方案1】:

我怀疑建议是只为 paragraphchangeText 声明一个 var

var paragraph = document.getElementsByTagName("p"),
    changeText = paragraph[1].style.fontStyle = "italic";

现在,除此之外,还不清楚你在用那个 changeText 变量做什么;它的值将始终是字符串“斜体”。如果您的函数确实只包含这两行,那么您真正想要的可能是:

var paragraph = document.getElementsByTagName("p");
paragraph[1].style.fontStyle = "italic";

【讨论】:

  • 即使我是新手,我也能明白你所说的不需要额外的 var。不过,这就是教程中的做法,而且效果很好。我接受了您的建议,但代码仍然没有将目标项目斜体(第[1]段。
  • @jwdwsn 请注意,列表中的第一段是paragraph[0],而不是paragraph[1]。索引从零开始。
  • 我正在尝试将第二个索引斜体,因此是 [1]。同样,我不确定为什么一个人可以拥有一个可以工作的特定代码,而我自己也有相同的代码但它不起作用。似乎我在这里遗漏了一些非常明显的东西,但是由于我比较新,所以我遗漏了它。
  • @jwdwsn 如果您在问题中运行 sn-p,您会看到单击按钮时第二段变为斜体。
  • 原来是我使用的编辑器。我从 Brackets 切换到 Sublime Text 并且相同的代码完美运行。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多