2017-03-10 48 views
2

我有這部分我的html文件選擇帶有某個孫子的項目。

<ul class="noBullets horizontalList"> 
    <li> <a href="home.html">Home</a> </li>  

    <li> <a href="about.html">About</a> </li> 

    <li> 
     <form> 
      <input type="search" name="search" /> 
      <input type="submit" value="Search" /> 
     </form> 
    </li> 
</ul> 

我需要在js文件中包含一個提交按鈕水平列表選擇任何項目並使其漂浮到右邊。我試過這個,並沒有工作:

$('li:contains(type="submit")').css("float", "right"); 

是否有任何干淨的方式來實現這一目標?

回答

2

只需使用jQuery filter

$('li').filter(function(index) { 
    return $('form button[type="submit"]', this).length > 0; 
}).css("float", "right");; 
1

有兩個問題'li:contains(type="submit")'

  1. attribute equals selector語法要求方括號,如'[type="submit"]',但...
  2. :contains() selector選擇包含元素指定的文本,不是嵌套選擇器。

我可能會從內到外接近這一點,即,使用.closest() method選擇按鈕(多個)第一,然後導航到的含Li元素(一個或多個):

$('input[type="submit"]').closest('li').css("float", "right");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<ul class="noBullets horizontalList"> 
 
    <li> <a href="home.html">Home</a> </li> 
 
    <li> <a href="about.html">About</a> </li> 
 
    <li> 
 
     <form> 
 
      <input type="search" name="search" /> 
 
      <input type="submit" value="Search" /> 
 
     </form> 
 
    </li> 
 
</ul>

相關問題