根据选项元素中的文本进行选项选择

时间:2013-05-06 22:23:47

标签: jquery

我试图在下拉列表中选择具有传递给函数的文本值的选项,获取它的值,然后选择具有该值的选项。你能明白为什么这不起作用吗?

  function selectAndAddToCart(value)
    {
        console.log('The selectAndAddToCart onclick value is ' + value);
        var optionToSelect = $j('#attribute136').find('option[text="' + value + '"]').val(); //select the option with the node text that equals value
//select the option with the node text that equals value
        var vals = $j('#attribute136').val() || [];
        vals.push(optionToSelect);
        $j('#attribute136').val(vals);

        //initiate add to cart function
        productAddToCartForm.submit(this); 
    }

3 个答案:

答案 0 :(得分:2)

将值放在引号中。尝试

var optionToSelect = $('#attribute136').find('option[text="' + value + '"]').val();

答案 1 :(得分:1)

$("#attribute136 option:content("+value")");

是你想要的选择器。

答案 2 :(得分:1)

看起来您正在使用noConflict,将$重命名为$j,但在失败的选择器上您使用的是$,而不是$j

我会这样做:

var optionToSelect = $j('option', '#attribute136').filter(function() {
    return $(this).text().indexOf(value) != -1;
}).val();

但这只是因为我不太关心contains()选择器:

$("#attribute136 option:contains(" + value + ")");