1. 程式人生 > >一直無法獲取到頁面上一個元素js

一直無法獲取到頁面上一個元素js

獲取元素

①前言

流程審批頁面我寫了一個公共的模板頁面,但是裏面的數據是動態添加進去的。我想在公共的頁面的js中去隱藏一個元素。

②我的思路:

我準備直接通過id去獲取元素,然後添加屬性 display:none

首先我通過jquery的方法:

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

我最初以為這就拿到了對象,然後直接設置屬性 v1.css("display","none") 結果沒有效果。

後面大牛采用的是

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

發現為v2位null

哦,原來是沒有拿到這個元素。

總結:=========

在測試的時候可以現在瀏覽器控制臺寫js代碼。如果有問題的時候,最好用js代碼而不是jquery代碼。因為所有瀏覽器都支持js代碼。


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

後面發現沒有取到元素,所以我就按照自己的方式去ifram中去找元素。其實這根本就不是ifram的問題,網上找了一大堆。


後面找了大牛。

大牛首先在控制臺獲取了數據,然後發現能獲取,在js代碼中寫了,發現不能獲取。

估計是加載順序問題。

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

我們在頁面中寫了一個button,將獲取元素的代碼寫在了一個方法中,點擊這個button,發現能獲取到數據。

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

然後找,我們的代碼是寫在ready裏面的,即頁面加載完成,但是為什麽無法獲取呢,後面他們說loadUrl這個方法是異步的,業務數據還沒加載完成的時候頁面js就執行完了。

然後我們把代碼寫在了loadUrl中。這樣就是同步執行了。

總結:其實就是數據還沒加載完就執行了js。


總結:

①對於編程,是什麽就是什麽,不要猜測或無端自己加入一些自己的想法。

比如這本來不是一個ifram,非得自己認為是一個ifram,這樣不利於去找問題。

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

一直無法獲取到頁面上一個元素js