我需要根据标签的第一个字母值选择元素。 例如:
<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做到这一点?
答案 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");