やあ...
要素とその子の背景色を変更しようとしているので、function
再帰的に呼び出されるを作成しました。
要素に属性または
が含まれている場合、要素の背景色を変更してはならないいくつかの条件を次に示します。class="irmNDrdnVal"
id="irmNDatePickerContainer"
コードは次のとおりです。
<!DOCTYPE HTML PUBLIC>
<html>
<style>
.newClass{
color:red;
background:green;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<body>
<div id="main">
<span id= "drdn-box-ACNT" class="irmNDrdnInputBox" disabled= "true">
<input id="drdn-ip-ACNT" class="irmNDrdnInput" readOnly="readOnly" value="1 IA" type="text">
<span><img src="/sap/bc/bsp/sap/public/drdn-btn.gif"></span>
</span>
<div id= "drdn-val-ACNT" class="irmNDrdnVal">
<div>
<ul>
<li disabled= "true" key= ""> </li>
<li disabled= "true" key= "1">1 IA</li>
<li disabled= "true" key= "2">2 PB & CB</li>
<li disabled= "true" key= "3">3 DM-P</li>
<li disabled= "true" key= "4">4 DM-R</li>
<li disabled= "true" key= "5">5 Cash App</li>
</ul>
</div>
</div>
</div>
<script>
function changeBgColor(_ele,_cls,_remove){
if(_remove){
_ele.removeClass(_cls);
}
else{
if(!_ele.hasClass('ui-resizable-handle') && !_ele.hasClass('irmNDrdnVal') && _ele.attr('id') != 'irmNDatePickerContainer'){
_ele.addClass(_cls);
}
}
if(_ele.children().length > 0 && !_ele.hasClass('irmNDrdnVal') && _ele.attr('id') != 'irmNDatePickerContainer'){
changeBgColor(_ele.children(),_cls,_remove);
}
}
$('div#main').each(function(){
changeBgColor($(this),'newClass',false);
});
</script>
</body>
</html>
そのため、特定の要素にクラスがあるかどうかを確認しています。irmNDrdnVal
クラスがない場合にのみ、背景を変更でき'irmNDrdnVal'
ます。
1つの要素を除くすべての要素が機能しています。
<span id= "drdn-box-ACNT" class="irmNDrdnInputBox" disabled= "true">
クラスはありませんが'irmNDrdnVal'
、hasClass('irmNDrdnVal')
メソッドはtrue
要素を返します。
whtzがうまくいかないのが理解できません。
誰かが私を助けることができますか.....事前に感謝します...