我有以下......
$(document).ready(function() {
$('p:contains("You")').parent('span').prev('input').addClass('error');
});
我的函数工作正常,因为它将类添加到正确的输入,但只有在显示包含“你”的段落时才应添加类:inline。
有人知道我该怎么做吗?
我对每个输入的标记与此类似....
<li class="yourdetli">
<label class="yourdet">House Number</label>
<input type="text" id="ctl00_ContentPlaceHolder1_TB_HNumber2" name="ctl00$ContentPlaceHolder1$TB_HNumber2">
<span style="color: Red; display: none;" class="errorp" id="ctl00_ContentPlaceHolder1_RequiredFieldValidator9">
<p>You must complete this field</p>
</span>
</li>
答案 0 :(得分:2)
您可以使用filter()并检查显示属性:
$(document).ready(function() {
$('p:contains("You")').filter(function(){
return $(this).css('display') === 'inline';
})
.parent('span')
.prev('input')
.addClass('error');
});
如果函数返回true,filter会保留元素
答案 1 :(得分:1)
$('p:contains("You"):visible')
假设您没有更改文档中任何位置的段落显示。
答案 2 :(得分:1)
您可能想要尝试收集包含<p>
的所有you
标记,并使用if
语句循环所有这些标记。
如果css display
为inline
,请将error
添加到input
。
这可能会有所帮助
$(document).ready(function(){
$("p:contains('you')").each(function(){
if($(this).css('display') === 'inline'){
$(this).parent('span').prev(':input').addClass('error');
}
});
});
答案 3 :(得分:0)
:包含区分大小写。 &#34;您&#34; 不确定这是不是问题。