一直没法获取到页面上一个元素js

①前言
css

流程审批页面我写了一个公共的模板页面,可是里面的数据是动态添加进去的。我想在公共的页面的js中去隐藏一个元素。java

②个人思路:jquery

我准备直接经过id去获取元素,而后添加属性 display:none编程

首先我经过jquery的方法: 浏览器

var v1 = $("#shenpiyijian");
console.log(v1)
//结果为n.fn.init()

我最初觉得这就拿到了对象,而后直接设置属性  v1.css("display","none")  结果没有效果。异步

后面大牛采用的是ide

var  v2 = document.getElementById("shenpiyijian");
console.log(v2)
//null

发现为v2位null
测试

哦,原来是没有拿到这个元素。对象

总结:=========get

在测试的时候能够如今浏览器控制台写js代码。若是有问题的时候,最好用js代码而不是jquery代码。由于全部浏览器都支持js代码。


------------------------------------------------------------------------------------------------------------------------

后面发现没有取到元素,因此我就按照本身的方式去ifram中去找元素。其实这根本就不是ifram的问题,网上找了一大堆。


后面找了大牛。

大牛首先在控制台获取了数据,而后发现能获取,在js代码中写了,发现不能获取。

估计是加载顺序问题。

-----------------------------下面 ,重要一步---------------------

咱们在页面中写了一个button,将获取元素的代码写在了一个方法中,点击这个button,发现能获取到数据。

-----------------------------重要一步---------------------

而后找,咱们的代码是写在ready里面的,即页面加载完成,可是为何没法获取呢,后面他们说loadUrl这个方法是异步的,业务数据还没加载完成的时候页面js就执行完了。

而后咱们把代码写在了loadUrl中。这样就是同步执行了。

总结:其实就是数据还没加载完就执行了js。


总结:

①对于编程,是什么就是什么,不要猜想或无故本身加入一些本身的想法。

好比这原本不是一个ifram,非得本身认为是一个ifram,这样不利于去找问题。

②注意同步异步,注意方式方法。

相关文章
相关标签/搜索