jQuery按输入值过滤输入
是否可以根据标签文本的一部分在DOM中搜索标签 例如,如果我有以下标记:jQuery按输入值过滤输入,jquery,Jquery,是否可以根据标签文本的一部分在DOM中搜索标签 例如,如果我有以下标记: <input type="checkbox" id="1"> <label for="1">Check Box One</label> <br /> <input type="checkbox" id="2"> <label for="1">Check Box Two</label> <br /> <input type=
<input type="checkbox" id="1">
<label for="1">Check Box One</label>
<br />
<input type="checkbox" id="2">
<label for="1">Check Box Two</label>
<br />
<input type="checkbox" id="3">
<label for="1">Check Box Three</label>
<br />
复选框一
复选框二
复选框三
我想能够搜索“T框”并获得最后两个标签。或者我只需要搜索所有标签,运行每个查询,然后手动检查文本值吗?为什么不搜索选中的输入?使用相关名称设置复选框的ID。
为它们添加一个类和$('.searched_class:checked')。val()将为您提供所有选中的复选框值为什么不搜索选中的输入?使用相关名称设置复选框的ID。
为它们添加一个类和$('.searched_class:checked')。val()将为您提供所有选中的复选框值循环将是最简单的方法:
var arrMatchingLabels = [];
$("label").each(function(index) {
if ($(this).html().indexOf("Box T") >= 0)
arrMatchingLabels.push($(this));
});
var s = "Found " + arrMatchingLabels.length + " matching labels: \n";
for (var i = 0; i < arrMatchingLabels.length; i++)
s += arrMatchingLabels[i].html() + "\n";
alert(s);
var arrMatchingLabels=[];
$(“标签”)。每个(函数(索引){
if($(this.html().indexOf(“Box T”)>=0)
arrMatchingLabels.push($(this));
});
var s=“Found”+arrMatchingLabels.length+“匹配标签:\n”;
对于(变量i=0;i
循环将是IMO最简单的方式:
var arrMatchingLabels = [];
$("label").each(function(index) {
if ($(this).html().indexOf("Box T") >= 0)
arrMatchingLabels.push($(this));
});
var s = "Found " + arrMatchingLabels.length + " matching labels: \n";
for (var i = 0; i < arrMatchingLabels.length; i++)
s += arrMatchingLabels[i].html() + "\n";
alert(s);
var arrMatchingLabels=[];
$(“标签”)。每个(函数(索引){
if($(this.html().indexOf(“Box T”)>=0)
arrMatchingLabels.push($(this));
});
var s=“Found”+arrMatchingLabels.length+“匹配标签:\n”;
对于(变量i=0;i
也许您在标签和输入周围放置了div。然后可以根据过滤器隐藏和显示该div。我会将文本搜索作为一个属性来分隔视觉内容和逻辑(稍后您可能会本地化应用程序并保持搜索关键字不变,但用户会看到例如西班牙语文本)
我希望这有帮助 也许您在标签和输入周围放置了div。然后可以根据过滤器隐藏和显示该div。我会将文本搜索作为一个属性来分隔视觉内容和逻辑(稍后您可能会本地化应用程序并保持搜索关键字不变,但用户会看到例如西班牙语文本) 我希望这有帮助 自定义jQuery选择器过滤器 我认为最好的、可重用的解决方案是创建jQuery选择器过滤器:
$.extend($.expr[":"], {
hastext: function(el, index, match) {
return $(el).text().indexOf(match[3]) >= 0;
}
});
然后可以这样使用:
$("label:hastext('Box T')");
$("label:hastext(Box T)"); // would do the trick just as well
见鬼,以后它可以用在任何选择器上
$("div.main table:first td:hastext(Get it?)")
这段代码未经测试,可能无法按预期工作,但您已经明白了这一点。它至少应该检查匹配[3]
…自定义jQuery选择器过滤器中是否有值
我认为最好的、可重用的解决方案是创建jQuery选择器过滤器:
$.extend($.expr[":"], {
hastext: function(el, index, match) {
return $(el).text().indexOf(match[3]) >= 0;
}
});
然后可以这样使用:
$("label:hastext('Box T')");
$("label:hastext(Box T)"); // would do the trick just as well
见鬼,以后它可以用在任何选择器上
$("div.main table:first td:hastext(Get it?)")
这段代码未经测试,可能无法按预期工作,但您已经明白了这一点。它至少应该检查
匹配[3]
..中是否有一个值,这不是我所追求的行为,本质上,我会在屏幕上有一组相当大的选项,我希望用户能够通过选项名称(即标签中的文本)来筛选它们。这不是我所追求的行为,基本上,我会在屏幕上有一个相当大的选项集,我希望用户能够通过选项的名称(即标签中的文本)来过滤它们。