rge*_*rge 2 jquery filter css-selectors
我刚刚开始使用jQuery,我很兴奋.
我发布的理由是我写了一些jQuery来完成它所需要的任务,但我怀疑它缺乏优雅......
我正在尝试获取所有具有以下内容的表行:1)一类'item'2)一个具有值的子文本输入框
<tr class="item">
<td class="sku">[dynamic]</td>
<td class="quantity">
<input type="text" name="[dynamic]" maxlength="3" /></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
...
var selections=$(".item>.quantity>:text[value!='']").parent().parent();
...
Run Code Online (Sandbox Code Playgroud)
我上面发布的代码有效,但有两件事(至少?)闻起来有点滑稽.
代码气味#1:我在最后使用'.parent().parent()'来抓取整行.有没有什么方法可以说,"给我所有的一些'项目',其中儿童文本输入有一个值",而不是回溯到最后的层次结构?
代码气味#2:我无法想出在选择过程中"修剪"文本输入值的方法,以确保空格不被解释为内容.使用我当前的方法,我将不得不'修剪'并在.each循环期间再次检查,这似乎是多余的.
如果你看到"更好的方式",请告诉我?
谢谢,理查德
#1
改为使用它(注意has选择器):
var selections=$(".item:has(>.quantity>:text[value!=''])");
Run Code Online (Sandbox Code Playgroud)
#2
空格通常被认为是有效输入,因此如果您的应用程序特别需要,则可以使用循环过滤$.trim().