JavaScript If语句用于两个标记之间的文本

4

我正在尝试编写一个JavaScript函数,其中包含一个“if”语句,如果两个标签之间的文本匹配,则执行一个命令。 我已经能够编写许多“if”语句,其中当输入文本框中的值等于“if”语句条件时执行命令。

function Test()
{
    if (document.getElementById('A').value == 1)
    {
      alert('test');
    }
}

<input type="button" id="B" onCLick="Test()"/>
<input type="text" id="A"/>

当我在文本框中输入“1”并按下按钮时,会出现一个警告框。 我遇到的问题是,我想对两个标记之间的文本执行相同的操作。 例如:

function Test()
{
        if (document.getElementById('A').value == 1)
    {
      alert('test');
    }
}

<input type="button" id="B" onCLick="Test()"/>
<p id="A">1</p>

在我的项目中,我将使用单词而不是数字,因此我理解必须在单词周围加上引号。不幸的是,这并不起作用。是否可能编写类似于上面的“if”语句来确定两个标记之间的文本是否为真?我已经尝试过document.getElementById('A')。text和document.getElementById('A')。innerHTML,但这些都没有改变。我甚至尝试只使用一个等号而不是两个等号;然而,这将使所有条件都为true,无论它是否为真。
谢谢
DFM

不要因为这是一个初学者问题就给它打负分。 - AlbertoPL
1
哇,短短几秒钟内就有四个编辑版本冲突。 - Tomalak
1
StackOverflow的管理员比其他任何网站的管理员都让我烦恼。所有的决策都是武断和专横的。我没有给这个问题投反对票,但任何想要因为任何原因投反对票的人都应该被允许。如果我想要投反对票来抵制所有初学者的问题,那可能意味着我希望在网站上少一些这样的问题,而这应该是我的权利来表达。 - Andrew Johnson
@Andrew Johnson:AlbertoPL不是管理员,他只是像你一样的普通用户,表达自己的观点。你所指的“过度控制的决策”是什么(在这个案例中)? - Tomalak
我猜在这种情况下没有。我不是很熟悉StackOverflow...我误解了正在发生的事情。 - Andrew Johnson
4个回答

4
if(document.getElementById("myID").innerHTML == "1")

如果所涉及的元素(例如div)具有以下标记,则将评估为true。
<div>1</div>

你也可以使用 jQuery

if($(element).text() == "1")

1
一个字符串和一个整数使用 == 运算符会被判断为相等,因为它会忽略变量的类型。只有当你使用 === 运算符时才会判断为不相等,因为它同时检查变量的值和类型。但这仍然是一个好习惯。 - Alex Rozanski
1
他正在使用在JS中无法进行类型检查的==,所以"1" == 1。但是1 !== "1"。 - Thorbjørn Hermansen

2
你在第二个例子中使用了 onCLick 而不是 onclick(全小写),这就是为什么它不起作用的原因。你应该使用 innerHTML 来获取 <p> 元素内的文本。
但需要注意的是,如果你想获取元素内其他元素的文本,使用 innerHTML 会返回所有这些元素及其各自的内容。 演示结果

谢谢Russ - 不知道为什么我在onClick方面没有遇到任何问题。像backgroundColor这样的东西,必须要有一个大写字母,一直让我感到困惑。此外,我尝试了innHTML,但我的语法可能有误。我正在使用记事本,所以这是试错过程。谢谢,DFM - DFM
至少,您可以下载Notepad++ - http://notepad-plus.sourceforge.net/uk/site.htm或Aptana Studio也非常好- http://aptana.com/studio/。两者都是免费的,并且在编写代码方面比记事本更具优势。 - Russ Cam
onclick是HTML规范的一部分 - http://www.w3.org/TR/REC-html40/interact/scripts.html JavaScript关键字使用驼峰命名法。 - Russ Cam

0

这应该会做你想要的。

<html>

  <input id="test" type="text" value="hello">

  <script>
    if (document.getElementById('test').value == "hello") alert("hello");
  </script>

</html>

谢谢Andrew - 我不知道我必须在标签内声明一个值才能用我的“if”语句引用它。我刚刚在我的项目中尝试了这种方法,效果很好。谢谢,DFM - DFM
使用值来获取 <p> 元素内的文本是行不通的。 - Russ Cam
如果您想获取 <p> 标签内的值,您需要编写以下代码:if (document.getElementById('test').innerHTML == "hello") alert("hello"); - Andrew Johnson

0

我已经有几年没有深入JavaScript开发了,但是我还记得(有点生疏),与其使用innerHTML,最好使用像childNodes [0] .nodeValue或firstChild.nodeValue这样的东西来处理像那样的

标签。

请参考以下链接... http://www.howtocreate.co.uk/tutorials/javascript/dombasics


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接