2

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

  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); 
    }
4

3 回答 3

2

将值放在引号中。尝试

var optionToSelect = $('#attribute136').find('option[text="' + value + '"]').val();
于 2013-05-06T22:26:13.130 回答
1
$("#attribute136 option:content("+value")");

是你想要的选择器。

于 2013-05-06T22:26:33.270 回答
1

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

我会做 :

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

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

$("#attribute136 option:contains(" + value + ")");
于 2013-05-06T22:28:51.343 回答