前端框架對頁面的損害+js判斷一個dom是否存在某個屬性

目錄

進入主題

  • 今天遇到一個問題就是引發了我對各種前端框架的思考。
  • 首先我個人認爲前端js+css框架,多數其實原理是這樣的:
  • 寫頁面的時候使用框架提供的css類。
  • 然後框架通過這些預定義樣式提供美觀的界面。
  • 涉及到功能的則是通過jquery的選擇器根據class選擇到dom元素,然後對dom元素進行操作。
  • 完畢
  • 如上所述,框架會對頁面dom元素進行簡單的修改。

我的經歷

  • 今天我使用框架,使用了框架的dialog,我的dialog中有個checkbox哦。然後我又調用相關方法destroy掉dialog之後。發現我的checkbox倒是沒丟,但是checkbox的value屬性沒了(我原始代碼中checkbox的value是設置了的)。
  • 問題解釋:其實這個問題說明的就是,當框架去把我的某個form或者div修改爲dialog的時候肯定對dom進行修改。然後再調用方法destroy掉dialog的時候會復原。但是這個復原是如何復原呢?比如A->B,復原是按照一定規則B->C呢?還是B->A呢?我想此處我用的這個框架肯定是根據框架自身形成dialog的規則進行倒回去的操作了一遍,而不是從頁面找到了我原先的dom進行復原。
  • 正好checkbox的value我用到了,鬱悶了好久。

特此記下造福後人

如何判斷一個dom是否存在某個屬性

  • 關於如何判斷一個dom是否存在某個樣式jquery提供了非常遍歷的方法hasClass。
  • 但是卻沒提供方法判斷是否存在某個屬性。
  • 現提供一個方法如下(這個是摘自網絡):
    比如我們要判斷a標籤是否包含rel屬性:
    如果存在某個屬性$(“a”).attr(“rel”)會返回 rel的值,如果不存在 rel屬性則會返回"undefined"。
 if($("a").attr("rel")=="undefined")

這個判斷永遠不會不成立。因爲類型不相同。undefined 就是 undefined類型。所以改爲:

if(typeof($("a").attr("rel")) == "undefined")

typeof是求變量類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章