我有一个供用户选择的选项列表:
<select>
<option>Twitter</option>
<option>Google</option>
</select>
用户选择了一个选项并按下页面上的特殊按钮后,我需要将整个<select>
列表转换为链接。
例如,如果用户选择“Google”,则整个<select>
列表将替换为:
<a href="google.com">Google</a>
如果选择了“Twitter”,则为:
<a href="twitter.com">Twitter</a>
答案 0 :(得分:3)
select
(使用抓取的值)如果您想为所选选项使用自定义网址,只需为此选项添加自定义值,如下所示:
<option value="yahoo.com">This is yahoo</option>
$(document).ready(function () {
$("button").click(function () {
var which = $("select").val();
var text = $('select option:selected').html();
$("select").replaceWith("<a href='http://" + which + "'>" + text + "</a>");
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="twitter.com">This is twitter</option>
<option value="google.com">This is google</option>
</select>
<button>Special button</button>
&#13;
答案 1 :(得分:2)
可能的解决方案是:
$('button').click(function(){
var select = $('select');
var value = select.val();
select.replaceWith('<a href="'+ value.toLowerCase() +'.com">'+ value +'</a>');
});
查看demo here。
修改强>
您可以在元素上设置data-something
属性,例如:
<option data-something="apple">Smartphones</option>
然后在jQuery代码中:
$('button').click(function(){
var select = $('select');
var value = select.val();
var href = select.find(':selected').data('something') || value.toLowerCase();
select.replaceWith('<a href="'+ href +'.com">'+ value +'</a>');
});