javascript - 通过几个选定的选项访问多个选择上的特定属性

标签 javascript jquery

当前代码,将检索一个选定的选项(有 2 个选定的选项)。

<select class="filter-selectpicker" multiple="multiple">
      <option data-path="all?page=1&type=3,4,6" selected>Type 6</a>
      <option data-path="all?page=1&type=3,4,7" selected>Type 7</a>
      <option data-path="all?page=1&type=3,4,8">Type 8</a>
    </select>

$('.filter-selectpicker').on('change', function(){
        var location = $('.filter-selectpicker option:selected').data('path');
        window.location.replace(location);
});

如何访问特定的<option>用户点击并获取路径属性?现在它只会找到第一个选定的选项。

我的目标是当用户点击<option>时将用户重定向到新的URL .

正在使用 PHP 添加所选内容(检查 $_GET,如果它在数组中 -> 将所选内容回显到 <option> )。

我正在使用 bootstrap-select,[ https://silviomoreto.github.io/bootstrap-select/][1]

希望我说得清楚。提前致谢!

--------更新--------

我所做的是data-icon="' . $path["selected"] . '",而不是使用echo“Selected” (如果它在 $_GET 中,它将返回图标代码,在我的例子中:glyphicon-ok)。

现在的问题是图标会放在文字的左侧,解决方案是编辑 bootstrap-select.js

首先添加一个类(在本例中为 myNewClass):

icon = typeof $this.data('icon') !== 'undefined' ? '<span class="' + that.options.iconBase + ' ' + $this.data('icon') + ' myNewClass"></span> ' : '',

接下来,更改文本输出的顺序:

这个:text = icon + '<span class="text">' + text + subtext + '</span>';

致:text = '<span class="text">' + text + subtext + '</span>'+ icon;

并且不要忘记新类的 CSS:

.myNewClass {
    padding-left: 10px;
}

最佳答案

如果有多个选择,您将需要循环选择每个选项

$('.filter-selectpicker').on('change', function(){
$(this).find("option:selected").each(function(){
        var location = $(this).attr('path');
        window.location.replace(location);
});
});

关于javascript - 通过几个选定的选项访问多个选择上的特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36167908/

相关文章:

javascript - 如何从雷达图中的鼠标悬停结果中删除数据值?

c# - 如何从 Selenium 访问 Chrome 开发者控制台

javascript - 使用 jQuery 获取选择框 IE 的值。

javascript - 获取返回哪个 dom 元素?

javascript - 使用 AWS S3 存储桶的授权错误

javascript - 迭代多个 ng-model

javascript - 类型错误 : Cannot read property 'body' of undefined after POST (MEAN)

javascript - 为什么在使用 jQuery 调整大小时不能使用 CSS 类以百分比指定 div 高度?

javascript - 无法使用 jQuery 的 "on click"事件监听器中包含的推送命令推送到全局范围内的数组

javascript - 使用 bootstrap modal 的方式与 javascriptalert() 和 inform() 相同