源码里也有空格啊:
这里显示的是一个空格,但实际上可能有多个空格,控制台都是按一个空格来显示的(这也符合html的设定)。
那么为什么获取的数据有多个空格呢?这很可能是源码中本来就是四个半角空格(上面已经说了),也有可能是通过js脚本把一个半角空格替换为两个全角空格。由于你提供的信息有限,我也只能这样猜了。
它叫不换行空格。全称No-Break Space,它是最常见和我们使用最多的空格,它是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的,要使用html实体表示才可累加,该空格占据宽度受字体影响明显而强烈。
1、JavaScript原生函数没有提供判断DOM节点是否存在方法,我们通常获取DOM节点几乎都是document.getElement..方法,会返回一个object数组合集,我们可以通过object[0],object[1]这样来访问这个合集的每一个对象。既然返回的是数组合集,那么就有length属性,而length大于等于1即表示DOM节点存在页面中代码:
Object.prototype.exist = function(){
if(typeof this !='undefined' &&this.length>=1){
return true
}
return false
}
使用:
假设页面有如下节点
<div>这里是DIV节点</div>
<div>这里是DIV节点</div>
<span>这里是span节点</span>
判断节点是否在页面:
var is_exist = document.getElementsByTagName('div').exist()
alert(is_exist) // true
var is_exist = document.getElementsByTagName('span').exist()
alert(is_exist) // true
var is_exist = document.getElementsByTagName('p').exist()
alert(is_exist) // false
2、注意:如果使用是使用document.getElementById()方法获取对象的就不能使用exist()方法,因为根据ID取节点对象的方法在取不到节点的情况下会返回一个空对象,不会集成原型exist()函数,所以会报错!所以如果是根据ID取对象的可以直接if(obj)这样既可判断DOM节点是否存在页面中
jQuery判断DOM节点是否存在页面中
可以这么干
添加原型:
(function($) {
$.fn.exist = function(){
if($(this).length>=1){
return true
}
return false
}
})(jQuery)
3、使用方法:
假如页面有如下DOM节点
<div id="a">这里是id=a节点</div>
<div>这里是DIV节点</div>
<div>这里是DIV节点</div>
<span>这里是span节点</span>
判断:
alert($('#aaa').exist())// false
alert($('#a').exist())// true
alert($('div').exist())// true
alert($('p').exist())// false
以上两种方法其实都是根据对象集合的length属性判断对象是否存在。