在特定元素子元素内找到没有类的元素的id

时间:2017-01-17 09:11:08

标签: javascript jquery html

如果我有这个HTML代码:

<ul class="nav nav-tabs" id="myTab">
    <li class="active"><a data-target="#home" data-toggle="tab">BBC</a></li>
    <li><a data-target="#profile" data-toggle="tab">CNN</a></li>
    <li><a data-target="#messages" data-toggle="tab">Sky news</a></li>
</ul>

<div class="tab-content">
    <div class="tab-pane active" id="home">
        <iframe src="http://www.bbc.com/" height="500px" width="100%" ></iframe> 
    </div>
    <div class="tab-pane" id="profile">
        <iframe src="http://edition.cnn.com/" height="500px" width="100%"></iframe>
    </div>
    <div class="tab-pane" id="messages">
        <iframe src="http://news.sky.com/" height="500px" width="100%" ></iframe>   
    </div>           
</div>

如您所见,<ul id="tabs"> <li><a id="tabb1" href="#tab1" data-translate="pagtab5" onclick="CaricaVisualizzaTab(1)">Tightening Torques</a> </li> <li><a id="tabb2" href="#tab2" data-translate="pagtab6" onclick="CaricaVisualizzaTab(2)" class="inactive">Specifications</a> </li> <li><a id="tabb3" href="#tab3" data-translate="pagtab7" onclick="CaricaVisualizzaTab(3)" class="inactive">Technical Data</a> </li> 类有两个<li>个元素。

我试图这样做,我有

inactive

但是如何在没有课程$("#tabs").children(); 的情况下搜索特定<li>

感谢您的帮助

5 个答案:

答案 0 :(得分:2)

使用:not():has()伪类选择器。

$("#tabs").children(':has(>:not(.inactive))');
// or with a single selector
$("#tabs > :has(>:not(.inactive))");

console.log($("#tabs").children(':has(>:not(.inactive))').length);
// or with a single selector
console.log($("#tabs > :has(>:not(.inactive))").length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="tabs">
  <li><a id="tabb1" href="#tab1" data-translate="pagtab5" onclick="CaricaVisualizzaTab(1)">Tightening Torques</a>
  </li>
  <li><a id="tabb2" href="#tab2" data-translate="pagtab6" onclick="CaricaVisualizzaTab(2)" class="inactive">Specifications</a>
  </li>
  <li><a id="tabb3" href="#tab3" data-translate="pagtab7" onclick="CaricaVisualizzaTab(3)" class="inactive">Technical Data</a>
  </li>

更新1:或者不使用jQuery :has()而是使用parent()方法。

$("#tabs > li > :not(.inactive)").parent()

console.log($("#tabs>li>:not(.inactive)").parent().length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="tabs">
  <li><a id="tabb1" href="#tab1" data-translate="pagtab5" onclick="CaricaVisualizzaTab(1)">Tightening Torques</a>
  </li>
  <li><a id="tabb2" href="#tab2" data-translate="pagtab6" onclick="CaricaVisualizzaTab(2)" class="inactive">Specifications</a>
  </li>
  <li><a id="tabb3" href="#tab3" data-translate="pagtab7" onclick="CaricaVisualizzaTab(3)" class="inactive">Technical Data</a>
  </li>

更新2 :如果您只想选择a代码,那么:not()足以通过单个选择器字符串获取它。

$("#tabs > li > :not(.inactive)")

$("#tabs>li>:not(.inactive)").css('color', 'red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="tabs">
  <li><a id="tabb1" href="#tab1" data-translate="pagtab5" onclick="CaricaVisualizzaTab(1)">Tightening Torques</a>
  </li>
  <li><a id="tabb2" href="#tab2" data-translate="pagtab6" onclick="CaricaVisualizzaTab(2)" class="inactive">Specifications</a>
  </li>
  <li><a id="tabb3" href="#tab3" data-translate="pagtab7" onclick="CaricaVisualizzaTab(3)" class="inactive">Technical Data</a>
  </li>

答案 1 :(得分:2)

view.findViewById(R.id.your_view);
$('#tabs li a').not('.inactive').css('color','red')

使用方法.not()

  

描述:从匹配元素集中删除元素。

答案 2 :(得分:1)

您可以使用.not()函数 $("#tabs").find('a').not('.inactive');

答案 3 :(得分:1)

您可以使用以下代码

sizeof

在您的情况下[class]将处于非活动状态

答案 4 :(得分:1)

通过使用javascript我们可以这样完成: -

var liWithoutHtml = document.getElementById('tabs').querySelector("li>a:not(.completed):not(.selected)");
alert(liWithoutHtml.innerHTML)

Jsfiddle链接