0

我需要根据标签文本值的首字母选择元素。例如:

<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/纯 javascript 做到这一点?

4

2 回答 2

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');  
于 2012-06-22T20:03:59.357 回答
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");
于 2012-06-22T20:20:28.507 回答