检查点击的按钮是否具有以jQuery中的特定字符串开头的ID

时间:2014-05-25 19:48:53

标签: javascript jquery html twitter-bootstrap

我正在使用Twitter Bootstrap并拥有以下代码

<div class="btn-group">
<a id="id_btn_dropdown_policies" class="btn dropdown-toggle" data-toggle="dropdown"   href="#">
                        --Select-- </a>
<ul class="dropdown-menu">
<li><a href="#" id="id_btn_dropdown_policy_policy1">policy1</a></li>
<li><a href="#" id="id_btn_dropdown_policy_policy2">policy2</a></li>
<li><a href="#" id="id_btn_dropdown_policy_policy3">policy3</a></li>
<li><a href="#" id="id_btn_dropdown_policy_policy4">policy4</a></li>
</ul>
</div>

我的功能是

$(function() {

    $(".dropdown-menu li a").click(function() {
        //check if button clicked is of id that starts with id_btn_dropdown_policy
        $("#id_btn_dropdown_policies").text($(this).text());
        $("#id_btn_dropdown_policies").val($(this).text());
        getCategory($(this));
    });

});

我只想在this.id.indexof("id_btn_dropdown_policies")=0

时设置id为id_btn_dropdown_policies的元素的文本和值

我无法在jQuery中执行此操作,因为看起来没有indexof方法。我试过了

if($(this).attr('id').indexof("id_btn_dropdown_policy") == 0) {
                alert("Matched");
            };

这是不正确的。那么正确的方法是什么?

4 个答案:

答案 0 :(得分:3)

确实没有indexof方法,它正在寻找 indexOf (资本&#39; O&#39;)。

请参阅MDN

答案 1 :(得分:2)

您可以尝试使用以下处理程序(仅为那些ID为a的{​​{1}}代码注册您的处理程序:

id_btn_dropdown_policy

在这种情况下,$(".dropdown-menu li a[id^='id_btn_dropdown_policy']").click(function() { // code goes here }); 表示a[id^='id_btn_dropdown_policy']id开头的所有代码。因此,点击其他id_btn_dropdown_policy代码不会采取任何措施。

答案 2 :(得分:0)

$(".dropdown-menu li a[id^='id_btn_dropdown_policy']") 

是一个糟糕的选择器,你应该使用javascript的indexOf方法。

if($(this).attr('id').indexOf("id_btn_dropdown_policy") == 0) {
                alert("Matched");
            };

对于那些div,我的建议是use common class,然后按类选择器进行选择。

答案 3 :(得分:0)

我不是肯定的我理解你的问题,但你可以使用jQuery中的“attribute starts with”选择器进行选择。

$(function () {
    $(".dropdown-menu li a").click(function () {
        //check if button clicked is of id that starts with id_btn_dropdown_policy
        $( "[id^='id_btn_dropdown_policies']" ).text($(this).text());
        $( "[id^='id_btn_dropdown_policies']" ).val($(this).text());
        getCategory($(this));
    });
});