如果显示P标签:无;Javascript

If P tag is display:none; Javascript

本文关键字:Javascript 标签 显示 如果      更新时间:2023-09-26

我有以下。。。

 $(document).ready(function() {
        $('p:contains("You")').parent('span').prev('input').addClass('error');
  });

我的函数工作得很好,因为它将类添加到正确的输入中,但只有当包含"you"的段落显示为内联时,它才应该添加类。

有人知道我该怎么做吗?


我对每个输入的标记与此类似。。。。

<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>

您可以使用filter((并检查显示属性:

 $(document).ready(function() {
        $('p:contains("You")').filter(function(){
                               return $(this).css('display') === 'inline';
                               })
                               .parent('span')
                               .prev('input')
                               .addClass('error');
  });

如果函数返回true ,filter将保留该元素

$('p:contains("You"):visible')

假设您没有在文档中的任何位置更改段落的显示。

您可能需要尝试收集所有包含you<p>标记,并使用if语句循环所有这些标记。

如果css displayinline,则将error添加到input

这可能有助于

$(document).ready(function(){
  $("p:contains('you')").each(function(){
    if($(this).css('display') === 'inline'){
      $(this).parent('span').prev(':input').addClass('error');
    }
  });
});

:contains区分大小写。"你"不确定这是否是问题所在。

相关文章: