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

Check if button clicked has ID that starts with a particular String in jQuery

本文关键字:开头 ID 字符串 按钮 单击 是否 检查 jQuery      更新时间:2023-09-26

我正在使用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_policys的元素的文本和值

我在jQuery中无法做到这一点,因为看起来没有indexof方法。我试过

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

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

实际上没有indexof方法,您要查找的是indexOf(大写'O'(。

参见MDN

您可以尝试以下处理程序(仅为id以id_btn_dropdown_policy开头的a标记注册处理程序(:

$(".dropdown-menu li a[id^='id_btn_dropdown_policy']").click(function() {
    // code goes here
});

在这种情况下,a[id^='id_btn_dropdown_policy']意味着,其idid_btn_dropdown_policy开头的所有标签。因此,点击其他a标签不会采取任何行动。

$(".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,然后通过classs选择器进行选择。

我不确定我是否理解您的问题,但您可以使用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));
    });
});