一直沒法獲取到頁面上一個元素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,這樣不利於去找問題。

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

相關文章
相關標籤/搜索