当</dt> <dd>包含特定字符或单个字符时,隐藏<dd>和</dd> <dt>

时间:2017-01-25 22:27:44

标签: javascript jquery html css

我有HTML显示用户对私有用户个人资料页面上表单的字段的响应。表单上的字段是有条件的,因此很多字段永远不会呈现给用户。 HTML由系统输出,并且从未呈现给用户的下拉字段接收&#34; - &#34; (em dash?)表示一个值,而他们不检查的复选框是否接收&#34;否&#34;。

系统缺少识别这些字段并隐藏它们的功能,所以我必须使用CSS或JS / JQ。在准备好文档时,我需要使用&#34; - &#34;隐藏DD。值和关联的父DT。我也希望用#34; No&#34;之类的复选框来做这件事,但是破折号更为重要。

我没有成功尝试调整类似帖子中提供的解决方案。感谢您的任何建议和专业知识!

&#13;
&#13;
 <dl class="request-details">
      <dt>Test Account submitted this request</dt>
               
                <dt>Status</dt>
                <dd>
                   <span class="request-status request-open" title="We are working on a response for you">
                   Open
                   </span>
                </dd>
            
                <dt>Name</dt>
                <dd>
                   <span>Wayne Gretzky</span>
                </dd>
                
                <dt>Order Number</dt>
                <dd>
                   <span>—</span>
                </dd>
                
                <dt>Brand</dt>
                <dd>
                   <span>Brand XYZ</span>
                </dd>
                
                <dt>Check the box if you are trying to retrieve links or registration information.</dt>
                <dd>
                   <span>No</span>
                </dd>
                
                <dt>Check the box if you can access the email address your software is registered to.</dt>
                <dd>
                   <span>No</span>
                </dd>
                
                <dt>SS Product Type</dt>
                <dd>
                   <span>Plus</span>
                </dd>
                
                <dt>SN Product Type</dt>
                <dd>
                   <span>—</span>
                </dd>
                
                <dt>SNE Product Type</dt>
                <dd>
                   <span>—</span>
                </dd>
                
                <dt>TLE Product Type</dt>
                <dd>
                   <span>—</span>
                </dd>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您可以遍历跨度,如果其中任何内容为<b-button>,则隐藏父和之前的dd

dt
$('span').each(function() {
  if ($(this).text() == '—') {
    $(this).parent('dd').addClass('hidden').prev('dt').addClass('hidden');
  }
});

答案 1 :(得分:0)

您可以使用:contains选择器

$('.request-details dd span:contains(—)')
        .parent().addClass('hidden')
        .prev().addClass('hidden');