选择具有某个孙子的项目。

时间:2017-03-10 23:51:27

标签: javascript jquery html5

我在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 个答案:

答案 0 :(得分:2)

只需使用jQuery filter

即可
<select name="foo">
    <?= $this->drawYearOptions(); ?>
</select>

<select name="bar">
    <?= $this->drawTeamOptions(); ?>
</select>

答案 1 :(得分:1)

'li:contains(type="submit")'存在两个问题:

  1. attribute equals selector语法需要方括号,例如'[type="submit"]',但是......
  2. :contains() selector选择包含指定文本的元素,而不是嵌套选择器。
  3. 我可能会从内到外处理这个问题,即首先选择按钮,然后使用.closest() method导航到包含li元素:

    &#13;
    &#13;
    $('input[type="submit"]').closest('li').css("float", "right"); 
    &#13;
    <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>
    &#13;
    &#13;
    &#13;