javascript - 在选择/组合框中同时包含文本和 href 链接

标签 javascript html

我已阅读Links in dropdown optionsusing href links inside tag以及 SO 中的其他几个问题,但是我的问题有点不同。

我想在选择组合框中同时包含文本和href。 类似的东西

<select id="mySelect">    
    <option value="-1" selected>choose an option to test</option>    
    <option value="1">Book 1 <a href="http://example.com/23?id=12">open site</a></option>    
    <option value="2">Book 2 <a href="http://example.com/11?id=10">open site</a></option> 
</select>

这个想法是,用户可以从组合框中进行选择,但也可以通过单击 open site 转到外部站点在选择书籍之前查看书籍。

Something like this 即:点击左侧的<option>是常规选择,同时单击<option>右侧会将用户带到另一个页面

这可能吗?运行代码要么完全忽略 href 要么提示 Warning: validateDOMNesting(...): <a> cannot appear as a child of <option>.

最佳答案

Is that possible?

不使用<a>元素作为 <option> 的子元素元素; <a>元素不是 HTML <option> 的有效子节点元素。

Permitted content Text, possibly with escaped characters (like é).

您可以在元素data-*处设置URL属性并导航至 URL change事件<select>元素

document.getElementById("mySelect")
.onchange = function() {
   var url = this.selectedOptions[0].dataset.href;
   if (url && confirm("Navigate to " + url + "?")) {
     location.href = url;
   }
}
:target {
  color: blue;
}
<select id="mySelect">    
    <option value="-1" selected>choose an option to test</option>    
    <option value="1" data-href="#Book1">Book 1 </option>    
    <option value="2" data-href="#Book2">Book 2 </option> 
</select>

<div id="Book1">Book 1</div>
<div id="Book2">Book 2</div>

关于javascript - 在选择/组合框中同时包含文本和 href 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48363885/

相关文章:

javascript - 使用 jquery 或 javascript 自动完成

javascript - chrome应用程序添加本地脚本和来自url的脚本

javascript - 使用 jQuery ui sortable 将项目排序到固定容器中

javascript - 加载 JSON 作为 HTML 中的资源以避免引导 ajax

c# - 如何在 MVC 中的另一个页面中显示 html 页面的一部分

iPhone iOS 如何发送带有 CSS 样式的 HTML 电子邮件?

javascript - 在 DIV 中显示 XHTML 的简单内容

javascript - 如何在 UIWebView 中调整图像大小?

javascript - 如何编辑 contentEditable div 中的链接

html - gulp-inject 给出了错误的相对路径