jQuery根據style篩選元素


<div style="display:block;">
    <input/>
</div>
<div style="display:none;">
    <input/>
</div>

如上的兩個input元素,獲取兩個input元素,常規的按index、id或判斷等形式也能實現,但是很麻煩,可以用以下辦法

$(".div[style='display:block;'] input")

注意“;”分號不能省略.

這里的style是指元素的style屬性,並非css屬性,否則如下改變之后同樣的方法獲取元素會失效

if($(this).css("display")=='none'){
    $(this).attr('display','block');
}else{
    $(this).css('display','none');
}

 

如要操作css屬性,可選用attr方法,如

if($(this).css("display")=='none'){
    $(this).attr('style','display:block;');
}else{
    $(this).attr('style','display:none;');
}

如欲詳細了解css屬性與元素屬性,請移步@參考文章,原文全文如下

 使用jquery的.attr( )方法去給div隱藏,這樣寫的 $("#div_id").attr("display","none"),發現並沒有生效,但是docunment.getElementById("div_id").style("display","none")就生效了。 而且再調試的時候發現,使用$("#div_id").attr("width","180")也是生效的....

 

原因:應該寫成 $("#div_id").css("display","none")  

            display屬於css中的屬性,而不屬於該div的屬性,而width既是div的屬性,也是css的屬性,所以會出現上面的情況,以后再使用jquery去修改某一標簽的style 使用css( ),修改元素的屬性  使用attr( )。

 

總結:

attr(): 獲取和修改的是元素的屬性,如img的src屬性和alt屬性,a鏈接的href屬性等等。

css() :獲取和修改的是樣式里面的屬性,即是style里面的屬性。
---------------------
作者:chdyiboke
來源:CSDN
原文:https://blog.csdn.net/chdyiboke/article/details/82700001
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM