是否可以动态创建新的锚标记以及下拉列表中的选项?
我想从下拉列表框中的新标签页中打开新页面。还有其他办法吗?
到目前为止,我已经尝试过这个:
function abc
{
$("#reportimg").fadeOut("slow");
<?php $link="<html><a Onclick='openreport($report2)'>Open</a></html>";?>
var text="<?php echo $report2.$link;?>";
var val="<?php echo $report2;?>";
alert(text);
$('#report_list').append( new Option(text,val) );
}
答案 0 :(得分:2)
尝试使用这种结构(当然你可以用你的PHP代替我的东西,但不需要使用<a>
或其他):
<select id="report_list">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
这个Javascript:
$(document).ready(function () {
$("#report_list").on("change", function () {
openreport($(this).val());
});
});
DEMO: http://jsfiddle.net/AyvUZ/2/
这会侦听要更改的<select>
值,这意味着选择了一个选项。您可以使用$(this).val()
(这是您在示例代码中看起来需要的全部内容)获取其值,并将其传递给openreport
。这一切都是在不修改原始HTML的情况下完成的。
答案 1 :(得分:2)
您实际上无法强制浏览器打开新选项卡,只能打开新窗口。现在,当您点击“_blank”链接或通过JavaScript打开一个新窗口时,浏览器往往会打开一个新选项卡。
如果你对此感到满意(我怀疑,你没有专门提出打开新标签的解决方案),你可以试试这个:
<!doctype html>
<html>
<body>
<select id="myDropDown">
<option>Select a website</option>
<option value="http://www.google.com">Google</option>
<option value="http://www.yahoo.com">Yahoo</option>
<option value="http://www.msn.com">MSN</option>
</select>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
$(function() {
$('#myDropDown').change(function(el) {
window.open($('#myDropDown').val());
});
})
</script>
</body>
</html>
希望有所帮助!