我有两个不同的查询,我想在一个查询中统一它们。一个是跟踪包含单词为文本的HTML元素的查询:
var component = ".component";
$(component).find(".search-here:contains('test')");
<tr class="search-here">
<td>test</td>
</tr>
其他一个查询跟踪表单的输入并检查它们的文本值:
var component = "#form";
$(component).find("input[type='text']:input[value*='test']").closest('.search-here');
<div class="search-here">
<input type="text" value="test, test1, test2">
</div>
它们,表单或任何HTMl组件都具有我想跟踪的值.search- here class
这里的问题是我无法跟踪表单的输入:contains因为它们没有文本值,所以它们有一个名为&#34; value&#34;
的属性有两个不同的查询有点麻烦和棘手,是否可以在单个通用查询中执行它而不必修改可以查询&#34; text&#34; word是值属性还是文本值?
答案 0 :(得分:1)
尝试$(component).filter("[type='text'],[value*='test'],:contains('test')").closest('.search-here')
只要输入的type = text或带有test的值,它就会返回。
<强>演示强>
var component = ".search-here *";
var s = $(component).filter("[type='text'],[value*='test'],:contains('test')").closest('.search-here');
console.log($(s).length)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<div class="search-here">
<input type="text" value="test, test1, test2">
</div>
<div class="search-here">
<input type="number" value="run"/>
</div>
</form>
<table>
<tr class="search-here">
<td>test</td>
</tr>
</table>