在jquery选择器中包含+ startswith

时间:2012-06-22 19:53:20

标签: javascript jquery jquery-selectors

我需要根据标签的第一个字母值选择元素。 例如:

<li><label for="1"><input type="checkbox" name="contacts" value="1">Aaron</label></li>
<li><label for="2"><input type="checkbox" name="contacts" value="2">Born</label></li>
<li><label for="3"><input type="checkbox" name="contacts" value="3">Bale</label></li>
<li><label for="4"><input type="checkbox" name="contacts" value="4">Kate</label></li>

我想选择文本值以B开头的所有输入 - 结果它应该是Born和Bale输入。我怎么能用jQuery / pure javascript做到这一点?

2 个答案:

答案 0 :(得分:2)

试试这个:http://jsfiddle.net/bb2uE/

HTML:

<label for="1">Aaron</label><input type="checkbox" name="contacts" value="1"></li>
<li><label for="2">Born</label><input type="checkbox" name="contacts" value="2"></li>
<li><label for="3">Bale</label><input type="checkbox" name="contacts" value="3"></li>
<li><label for="4">Kate</label><input type="checkbox" name="contacts" value="4"></li>

使用Javascript:

$(document).ready(function(){
var obj = [];
    $.each($('label'), function(){
        if ($(this).html().charAt(0) == 'B')
         obj.push($(this).html());       
    });
    for (var i = 0; i < obj.length; i++)
        console.log(obj[i]);
});

或者,如果您想隐藏这些输入:http://jsfiddle.net/bb2uE/1/

使用Javascript:

var hideFunction = function(letter){
   $.each($('label'), function(){
        if ($(this).html().charAt(0) == letter)
            $(this).parent().hide();     
    });
}
hideFunction('B');  

答案 1 :(得分:1)

您的标记应如下所示:

<li><input type="checkbox" name="contacts" id="id1" value="1"><label for="id1">Aaron</label></li>
<li><input type="checkbox" name="contacts"  id="id2"  value="2"><label for="id2">Born</label></li>
<li><input type="checkbox" name="contacts"  id="id3"  value="3"><label for="id3">Bale</label></li>
<li><input type="checkbox" name="contacts"  id="id4" value="4"><label for="id4">Kate</label></li>​

这就是你获得输入的方式

$("label").filter(function () {
    return $(this).text().charAt(0) === "B"; 
}).closest("li").find("input");