2017-03-10 70 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>

相关问题