我有HTML显示用户对私有用户个人资料页面上表单的字段的响应。表单上的字段是有条件的,因此很多字段永远不会呈现给用户。 HTML由系统输出,并且从未呈现给用户的下拉字段接收" - " (em dash?)表示一个值,而他们不检查的复选框是否接收"否"。
系统缺少识别这些字段并隐藏它们的功能,所以我必须使用CSS或JS / JQ。在准备好文档时,我需要使用" - "隐藏DD。值和关联的父DT。我也希望用#34; No"之类的复选框来做这件事,但是破折号更为重要。
我没有成功尝试调整类似帖子中提供的解决方案。感谢您的任何建议和专业知识!
<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;
答案 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');