使用jQuery隐藏第一个收音机和标签

使用jQuery隐藏第一个收音机和标签,jquery,Jquery,我有一组从外部服务器生成的无线电选项。我需要隐藏任何带有“无”标签的收音机和标签 以下是HTML的外观: <div class="productAttributeList top-emx" style=""> <div class="productAttributeRow productAttributeConfigurablePickListSet"> <div class="productAttributeLabel"> <label for

我有一组从外部服务器生成的无线电选项。我需要隐藏任何带有“无”标签的收音机和标签

以下是HTML的外观:

<div class="productAttributeList top-emx" style="">
<div class="productAttributeRow productAttributeConfigurablePickListSet">
<div class="productAttributeLabel">
    <label for="be91177516ac23bfe33ba180741486ee">
        <span class="name">Delivery Options:</span>
    </label>
</div>
<div class="productAttributeValue">
<div class="productOptionViewRadio">
<ul>
    <li>
        <label>
            <input type="radio" class="validation" name="attribute[139]"
            value="" checked="checked" />
            <span class="name">(None)</span>
        </label>
    </li>

    <li>
        <label>
            <input type="radio" class="validation"  name="attribute[139]"
            value="86" />
            <span class="name">Standard Shipping</span>
        </label>
    </li>

    <li>
        <label>
            <input type="radio" class="validation"  name="attribute[139]"
            value="89" />
            <span class="name">2 Day Express Shipping</span>
        </label>
    </li>

    <li>
        <label>
            <input type="radio" class="validation"  name="attribute[139]"
            value="90" />
            <span class="name">3 Day Express Shipping</span>
        </label>
    </li>
</ul>
</div>  
</div>

交付选项:
  • (无)
  • 标准运输
  • 2天快运
  • 三天快运
我试过了,但我想我已经走远了,因为它什么也没用

<script>  
    $('.productOptionViewRadio' li:first).hide();  
</script>

$('.productOptionViewRadio'li:first).hide();

非常感谢。

很抱歉,在看到未编辑的问题时,我最初误解了您的要求,您可以使用class
.name
选择跨距,然后使用条件
过滤这些集合,其文本等于“(无)”
,然后将其隐藏

$( document ).ready(function() {
   $('span.name').filter(function(){
          return $.trim(($(this).text()) === '(None)'
   }).parents('li').hide();
});

很抱歉,在看到未编辑的问题时,我最初误解了您的要求,您可以使用class
.name
选择跨度,然后使用条件
过滤这些集合,其文本等于“(无)”
,然后将其隐藏

$( document ).ready(function() {
   $('span.name').filter(function(){
          return $.trim(($(this).text()) === '(None)'
   }).parents('li').hide();
});

你很接近。您的选择器有错误

 $('.productOptionViewRadio li:first').hide();  
此外,您应该将代码包装成

$( document ).ready(function() {
  // Handler for .ready() called.
     $('.productOptionViewRadio li:first').hide(); 
});

你很接近。您的选择器有错误

 $('.productOptionViewRadio li:first').hide();  
此外,您应该将代码包装成

$( document ).ready(function() {
  // Handler for .ready() called.
     $('.productOptionViewRadio li:first').hide(); 
});

如果包含
(无)
标签的
li
不总是
.productOptionViewRadio
列表中的第一个,您将无法使用组合在一起的选择器将其隐藏(忽略选择器中的轻微键入)

您可以使用选择器,它将匹配任何或所有
(无)
元素:

$(".productOptionViewRadio span.name:contains('(None)')").parents('li').remove();

这里有一个-注意它是如何删除列表中更靠后的元素的(与其他答案不同,它只会删除第一个
li
,而不管它的
内容如何)。

如果包含
标签的
li
(无)
并不总是
.productOptionViewRadio
列表中的第一个,您将无法使用组合在一起的选择器来隐藏它(无论如何,忽略选择器中的轻微键入)

您可以使用选择器,它将匹配任何或所有
(无)
元素:

$(".productOptionViewRadio span.name:contains('(None)')").parents('li').remove();

这里有一个-注意它是如何删除列表中更靠后的元素的(与其他答案不同,它只会删除第一个
li
,而不管它的
内容如何)。

此示例将只隐藏
元素,而不是
  • ,从而导致列表项为空。此外,在这种情况下,使用
    parents()
    ,而不是
    closest()
    @BenM更有效。感谢您提供的信息。最后,您的解决方案不起作用,因为
    span.name
    元素没有
    (none)
    的文本。此示例将只隐藏
    元素,而不是
  • ,导致列表项为空。另外,在这种情况下,使用
    parents()
    ,而不是
    closest()
    @BenM更有效。谢谢您的信息。最后,您的解决方案不起作用,因为
    span.name
    元素都没有
    (none)
    的文本。BenM,非常感谢,这太棒了!感谢大家对可能性的关注,没有人会以不同的顺序出现。干杯苏珊拉德帮助苏珊娜,快乐编码!本姆,非常感谢,这太棒了!感谢大家对可能性的关注,没有人会以不同的顺序出现。干杯苏珊拉德帮助苏珊娜,快乐编码!