16

我有这个表格:

<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 选择器选择inputand ?select

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

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

3 回答 3

39

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

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

或者如果你不喜欢重复,这个:

$("form[name='customize']").children("select, input")
于 2008-11-09T18:39:02.430 回答
8

更短的语法 $(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");
于 2008-11-09T18:45:49.170 回答
2

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

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

两个选择器都像我看到的那样工作。也许问题出在其他地方?

我试过

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

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

- - 编辑 - -

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

于 2008-11-09T18:28:53.823 回答