我完全被难住了,任何帮助表示赞赏。
代码片段:
$specialIFrame.contents().find("#flavorPara select#productList option[value="+$varietal_code+"]").attr("selected","selected");
$specialIFrame是一个 iframe,选择菜单的值是从页面上的另一个 iframe 中提取的。上面的代码在 FF 和 Chrome 中正确设置了我选择的选项,但在 IE7 中没有。$varietal_code当我用 alert()测试值时;我得到正确的数值。当我在有效值而不是变量中硬编码时,$varietal_code即使在 IE7 中也能正常工作。但是当我在 IE7 中使用上述内容时,在 Windows Vista 机器上,选择菜单默认为第一个选项。
我会包含所有代码,但它太冗长了,我希望我的问题只出现在上面的代码中。
我也试过.attr('selected',true);无济于事。
我猜我的串联是问题吗?在此先感谢您,Stack Overflow 一直对我的查询有答案,但这是我第一次提出问题。
我正在添加整个函数,这可能是比我想象的更深层次的问题:
$specialIFrame.contents().find('#selectWinePopup a').click(function() {
var $varietal_code = $(this).attr('href').replace('#','');
var $varietal_name = $(this).text();
//alert('code ' + $varietal_code + ' name ' + $varietal_name);
//$specialIFrame.contents().find('#flavorPara #productList > option[value="'+$varietal_code+'"]').attr("selected", "selected");
$specialIFrame.contents().find("#flavorPara select#productList option[value="+$varietal_code+"]").attr("selected", "selected");
//$specialIFrame.contents().find('#flavorPara #productList').val($varietal_code);
//$specialIFrame.contents().find("#flavorPara select#productList option[value="+$varietal_code+"]").selectedIndex = 1;
//alert($varietal_code);
$specialIFrame.contents().find('#selectWinePopup').hide();
$specialIFrame.contents().find('#flavorPara').removeClass('active');
$specialIFrame.contents().find('#flavorPara').css("background-image","url('/resources/images/ftrWineSelect.jpg')");
var $starttext = $specialIFrame.contents().find('#flavorPara #showflavor').text();
var $newtext = $specialIFrame.contents().find('#flavorPara select#productList option:selected').text();
var $valtext = $specialIFrame.contents().find('#flavorPara select#productList option:selected').val();
//alert($newtext);
alert($valtext);
$specialIFrame.contents().find('#flavorPara #showflavor').text($varietal_name);
//alert('code ' + $varietal_code + ' name ' + $varietal_name);
});
我留下了我自己的测试和警报,所以任何人都可以看到我的一些测试。