用jQuery选择多个后代?

时间:2008-11-09 18:22:37

标签: javascript jquery forms jquery-selectors

我有这样的表格:

<form name="customize">
    Only show results within 
        <select name="distance" id="slct_distance">
            <option>25</option>
            <option>50</option>
            <option>100</option>
            <option value="10000" selected="selected">Any</option>
    </select> miles of zip code
    <input type="text" class="text" name="zip_code" id="txt_zip_code" />
    <span id="customize_validation_msg"></span>
</form>

如何使用一个jQuery选择器选择inputselect

我试过了,但它选择了页面上的所有选择和输入:

$("form[name='customize'] select,input")

3 个答案:

答案 0 :(得分:35)

选择器字符串中的逗号分隔完全独立的表达式,就像在CSS中一样,因此您给出的选择器获取名为“customize”的表单中的select元素以及表单上的所有输入(如您所述) 。听起来你想要这样的东西:

$("form[name='customize'] select, form[name='customize'] input")

或者如果你没有重复,那么:

$("form[name='customize']").children("select, input")

答案 1 :(得分:7)

更短的语法$(selector,parentselector)也是可能的。 本页示例:

// all spans
$("span").css("background-color","#ff0");

// spans below a post-text class
$("span", ".post-text").css("background-color","#f00");

编辑 - 我忘记了几个孩子的特殊情况!

// spans and p's below a post-text class
$("span,p", ".post-text").css("background-color","#f00");

答案 2 :(得分:0)

对我来说,你的建议是有效的。你也可以使用

form[name='customize'] select, form[name='customize'] input

两个选择器都可以正常工作。也许问题出在其他地方?

我试过

$("form[name='customize'] select, input").css( 'font-size', '80px' );

在您的示例HTML上。选择和输入的字体大小已更改。

---编辑---

我的建议是正确的。它只选择自定义表单中的元素。