为了账号安全,请及时绑定邮箱和手机立即绑定

怎么加了if(text!=null)之后还会输出空值?

如题所问,结果如下:

http://img1.sycdn.imooc.com//55a8cae4000175ee09520265.jpg

正在回答

7 回答

你把判断语句改成

if (!!text)

1 回复 有任何疑惑可以回复我~
#1

二五七 提问者

为什么if(text!=null)不行?
2015-07-17 回复 有任何疑惑可以回复我~
#2

Code_M0keny 回复 二五七 提问者

周末没时间看。 除了@嗟嗟嗟 说的,我再补充一下,js判断字符串为空,一般就是 (str != null && str != '') ,而js中会把 null、''、0、false当做是false,而!!str的意思就是 将str强转为布尔值。
2015-07-20 回复 有任何疑惑可以回复我~
#3

二五七 提问者 回复 Code_M0keny

明白了,谢谢啊。
2015-07-20 回复 有任何疑惑可以回复我~
#4

嗟嗟嗟 回复 Code_M0keny

涨姿势了。 但是这种设定好奇怪。。
2015-07-20 回复 有任何疑惑可以回复我~
查看1条回复

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>

  <p id="intro">我的课程</p>  

  <ul>  

    <li title="JS">JavaScript</li>  

    <li title="JQ">JQuery</li>  

    <li title="">HTML/CSS</li>  

    <li title="JAVA">JAVA</li>  

    <li title="">PHP</li>  

  </ul>  

  <h1>以下为li列表title的值,当title为空时,新设置值为"WEB前端技术":</h1>

<script type="text/javascript">

  var Lists=document.getElementsByTagName("li");

  for (var i=0; i<Lists.length;i++)

  {

    var text=Lists[i].getAttribute("title");

    if(text!=""){  

    

    document.write(text +"<br>");

    }else

    {

    Lists[i].setAttribute("title","c++")

    document.write(Lists[i].getAttribute("title")+"<br>");

    }

  }

</script>

</body>

</html>

这样就不会输出空格

0 回复 有任何疑惑可以回复我~

因为他并不是null,而是空字符串"",null代表没有值,而空字符串""是有值得、

也就是说""!=null(值为flase),所以你的判断不能生效。

1 回复 有任何疑惑可以回复我~
#1

嗟嗟嗟

哦 错了 ""!=null(值为true)
2015-07-19 回复 有任何疑惑可以回复我~
#2

二五七 提问者

哦,非常感谢。
2015-07-20 回复 有任何疑惑可以回复我~

<!DOCTYPE HTML>

<html>

<head>

   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

   <title>无标题文档</title>

</head>

<body>

<p id="intro">我的课程</p>

<ul>

   <li title="JS">JavaScript</li>

   <li title="JQ">JQuery</li>

   <li title="">HTML/CSS</li>

   <li title="JAVA">JAVA</li>

   <li title="">PHP</li>

</ul>

<h1>以下为li列表title的值,当title为空时,新设置值为"WEB前端技术":</h1>

<script type="text/javascript">

   var Lists = document.getElementsByTagName("li");

   for (var i=0; i<Lists.length;i++)

   {
       var text=Lists[i].getAttribute("title");
       if(text=="")
       {
           Lists[i].setAttribute("title","WEB前端技术");
       }
       document.write(Lists[i].getAttribute("title")+"<br>");

   }

</script>

</body>

</html>

0 回复 有任何疑惑可以回复我~

@甜甜圈

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>

  <p id="intro">我的课程</p>  

  <ul>  

    <li title="JS">JavaScript</li>  

    <li title="JQ">JQuery</li>  

    <li title="">HTML/CSS</li>  

    <li title="JAVA">JAVA</li>  

    <li title="">PHP</li>  

  </ul>  

  <h1>以下为li列表title的值,当title为空时,新设置值为"WEB前端技术":</h1>

<script type="text/javascript">

  var Lists=document.getElementsByTagName("li");

  for (var i=0; i<Lists.length;i++)

  {

    var text=Lists[i].getAttribute("title");

    if(text!=null)

    document.write(text +"<br>");

    if(text=="")

    {

    Lists[i].setAttribute("title","WEB前端技术");

    document.write(Lists[i].getAttribute("title")+"<br>");

    }

  }

</script>

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

甜甜圈

实际上不是判断出错导致输出了空,而是你判断正确,输出了换行。
2015-07-17 回复 有任何疑惑可以回复我~
#2

二五七 提问者 回复 甜甜圈

哦,好的,谢谢。
2015-07-20 回复 有任何疑惑可以回复我~

发代码,不要截图

0 回复 有任何疑惑可以回复我~
#1

二五七 提问者

字数有限,见下。
2015-07-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么加了if(text!=null)之后还会输出空值?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信