首先明白一点,uni-app提供的view、button、image、text通通都是组件,不是h5的标签,虽然用起来方便,但如果你想获取dom节点信息,尽管给组件绑定一个id选择器,用documentgetElementById()等这种传统的JS获取dom方式是没有任何效果。
因为他们是组件,除非你不用这些现成的组件,用回h5的标签。
所以你如果想获取uni-app提供组件的DOM元素,需要如下的方法。
unicreateSelectorQuery()in(this);用于创建一个实例。
in(this)在这里是为了规范页面创建实例,避免获取不到实例报null,用上总没错
queryselect('#text')用于选择DOM节点
boundingClientRect()返回dom节点的相关信息
拿到的是一些元素本身的宽高信息、距离页面四边的距离。
使用unicreateSelectorQuery()创建dom实例,需要在这个mounted()生命周期里面进行,这个生命周期它代表组件已经创建完成,可以挂载实例,进而获取dom元素
如果不写在mounted生命周期里,你也可以写在methods方法定义里面,不过你需要这样来调用。
你的这个javascript脚本通常会在一个HTML页面里面运行。所以如果你的字符串里面没有<html>标签,直接就是内容<input type='text' value='123' id='test'>,那么可以通过doucmentcreateElement创建一个div,然后把这个div的innerHTML设置成你的字符串。再把这个div append到doucmnet下面人任何一个元素里(通常就是body元素),这样就可以documentgetElementById来获取了。用完之后如果不需要了,再从dom tree里把这个元素移除掉,或者就把这个div设置为display="None"就好
但是如果这个字符串是完整的HTML,包括<html><head><body>等标签,那么就需要创建一个新的iframe,把这个iframe的innerHTML设置成你的字符串,然后通过iframe的document的getElementById来获取。
1、JavaScript原生函数没有提供判断DOM节点是否存在方法,我们通常获取DOM节点几乎都是documentgetElement方法,会返回一个object数组合集,我们可以通过object[0],object[1]这样来访问这个合集的每一个对象。既然返回的是数组合集,那么就有length属性,而length大于等于1即表示DOM节点存在页面中
代码:
Objectprototypeexist = function(){
if(typeof this !='undefined' && thislength>=1){
return true;
}
return false;
};
使用:
假设页面有如下节点
<div>这里是DIV节点</div>
<div>这里是DIV节点</div>
<span>这里是span节点</span>
判断节点是否在页面:
var is_exist = documentgetElementsByTagName('div')exist();
alert(is_exist); // true
var is_exist = documentgetElementsByTagName('span')exist();
alert(is_exist); // true
var is_exist = documentgetElementsByTagName('p')exist();
alert(is_exist); // false
2、注意:如果使用是使用documentgetElementById()方法获取对象的就不能使用exist()方法,因为根据ID取节点对象的方法在取不到节点的情况下会返回一个空对象,不会集成原型exist()函数,所以会报错!所以如果是根据ID取对象的可以直接if(obj)这样既可判断DOM节点是否存在页面中
jQuery判断DOM节点是否存在页面中
可以这么干
添加原型:
(function($) {
$fnexist = 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属性判断对象是否存在。
以上就是关于uni-app获取dom节点信息全部的内容,包括:uni-app获取dom节点信息、在JS的脚本里,怎么把一个html字符串转成的DOM对象.从而能使用返回的DOM对象来访问某一个节点、js中的节点与空节点是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)