我很好奇在jquery(或javascript)中是否有一种简单的方法来检查div
或td
元素中是否有可见字符。
示例:
假设我有一个表,它的表头和下面的一行作为过滤器,如下所示:
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
....
</tr>
<tr>
<th><input id="FirstNameFilter" /></th>
<th>
<select id="LastNameFilter">
<option value="Smith">Smith</option>
<option value="Doe">Doe</option>
<option value="Nelson">Nelson</option>
</select>
</th>
....
</tr>
</thead>
如果用户想根据名字过滤,他/她在相应的字段中键入一些内容,如果他/她想根据姓氏过滤,他/她从下拉列表中选择,然后激活一个javascript函数来过滤表格中的行。
现在,有没有一种方便的方法可以获取用户键入或选择的所有那些<th>
?.is(':empty')
或检查可见性显然不起作用,现在我能想到的唯一其他选项是检查th
中是否有元素(因为也可能有没有过滤器的列),如果是input
标记或select
标记,则分别查询.val()
或.(':selected').val()
。
因此,问题基本上是,是否有一种方法可以用1个函数检查,而不管<th>
中的元素类型如何-我在想,也许有一种方法可以检查<th>
中的某个地方(甚至包括它的子元素)是否有可见字符(在DOM上)?
谢谢
编辑
我基本上是在寻找一个选择器来选择:
- 具有
input
元素且input
元素不为空的th
th
,其中包含一个select
元素,并且选择了一些option
(顺便说一下,其值不为空)
我不想听到的是:
th
为空- 具有
input
元素但为空的th
- 具有
select
元素但未选择任何选项或所选选项的值为空的th
希望你说得更清楚
1条答案
按热度按时间qojgxg4l1#
也许你是这个意思?我不是测试标签没有一个值(例如一个跨度或这样的)-这需要更多的编码