[英]jQuery: How to check if an element exists and change css property
首先,很抱歉,如果這是一個簡單的問題。 我是jQuery的新手,我想知道如何檢查元素是否存在,如果存在,請更改css屬性。
這是我的意思:我有以下列表:
<ul class="element-rendered">
<li class="element-choice">Item A</li>
<li class="select-inline">Item B</li>
</ul>
我想知道如何檢查element-rendered
select-inline
類中是否存在select-inline
類,如果存在,如何將element-choice
的css背景更改為blue?
我創建了一個小提琴來重現此示例。
再次抱歉,如果這是一個簡單的問題,但我是jQuery新手。
您可以使用.length
來檢查元素是否存在於DOM中。
$('.element-rendered .select-inline')
將在元素class element-rendered
類中select-inline
所有具有select-inline
類的element-rendered
。 選擇器上的.length
將返回匹配元素的數量。 因此,數字大於1表示元素存在。 然后,您可以使用.css
設置內聯樣式。
if ($('.element-rendered .select-inline').length) { $('.element-choice').css('background', 'blue'); }
.element-choice { width: 100%; background: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <ul class="element-rendered"> <li class="element-choice">Item A</li> <li class="select-inline">Item B</li> </ul>
我還將建議您在CSS中使用class,並通過使用addClass
將其添加到元素中。
var eR = $(".element-rendered");
if (eR.find(".select-inline").length > 0){
eR.find(".element-choice").css("color", "blue");
}
這將適用於您的特定示例。
找到選擇線元素,它是元素渲染的子元素。 使用class element-choice查找所有同級元素,然后應用css。
$('.element-rendered>.select-inline').siblings('.element-choice').css('background','blue')
要檢查元素是否存在,可以使用.is()
或@Tushar .length
建議
var container = $(".element-rendered");
// alternatively `!!$(".select-inline", container).length`
$(".select-inline", container).is("*")
&& $(".element-choice", container).css("background", "blue");
jsfiddle http://jsfiddle.net/hjpng78s/6/
如何檢查class-inline是否存在於元素渲染中,如果存在,如何將element-choice的CSS背景更改為藍色?
if ( $(".element-rendered > .select-inline").length ) {
$(".element-rendered > .element-choice").css({
'background-color': 'blue'
});
}
文檔:
if($(".element-rendered .select-inline")[0])
$(".element-rendered .select-inline").css("background-color","red");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.