我正在使用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
我无法在jQuery中执行此操作,因为看起来没有indexof方法。我试过了
if($(this).attr('id').indexof("id_btn_dropdown_policy") == 0) {
alert("Matched");
};
这是不正确的。那么正确的方法是什么?
答案 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));
});
});