jquery选择器数组

时间:2009-12-08 07:47:50

标签: jquery css-selectors

我有一个增加篮子的问题。有些产品有颜色/尺寸等选项。我绘制颜色/大小的选择框和数量的输入。

<select name="productOption[1234][color]">
<select name="productOption[1234][size]">
<input type="text" name="productOption[1234][qty]">

所以option是一个包含每个产品值的数组。在abov示例中是id为1234的产品选项。

我试过

var productOptions=$("name^='productOption["+productID+"]'").val();  

期望得到给定productID的选项数组,但它不起作用。 选项是动态的一些产品可以有额外的选项

任何人都可以帮助我使用选择器,以便检索给定productID的值数组并将它们传递给serverSide。

由于

3 个答案:

答案 0 :(得分:9)

我认为这是你想要的,假设你正在使用jQuery。

<script type="text/javascript">
function getProductDetails( product_id ) {
    var product_details = [];
    jQuery( '[name*="productOption[' + product_id + ']"]' ).each( function() {
        var option = jQuery( this );
        var type = option.attr( 'name' ).match( /productOption\[\d+\]\[(\w+)\]/ );
        product_details[ type[1] ] = option.val();
    } );

    return product_details;
}
</script>

这将返回一个关联的数组。所以你可以......

var details = getProductDetails( 1234 );
alert( details['qty'] );

答案 1 :(得分:4)

您忘记了属性选择器( [attr ^ = value]

var productOptions=$("[name^='productOption["+productID+"]']").val();

答案 2 :(得分:1)

scape内部括号'\ \'(没有空格) - 更容易

$('input[name=items\\[\\]]')

如此处所见jquery - select all checkboxes with js array name