我试图在下拉列表中选择具有传递给函数的文本值的选项,获取它的值,然后选择具有该值的选项。你能明白为什么这不起作用吗?
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);
}
答案 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 + ")");