Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:基于多属性的元素选择_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript jQuery:基于多属性的元素选择

Javascript jQuery:基于多属性的元素选择,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有以下HTML <tr id="r1" class="l1"> <td><img class="plusminus" id="r1c1" src="assets/images/plus.png" border="0" />3/10/12</td> <td></td> <td></td>

我有以下HTML

<tr id="r1" class="l1">
                <td><img class="plusminus" id="r1c1" src="assets/images/plus.png" border="0" />3/10/12</td>
                <td></td>
                <td></td>
                <td>4,449,371</td>
                <td>27,399</td>
                <td>$500,000</td>
                <td>8.91%</td>
                <td>0.68%</td>
                <td>0.62%</td>
                <td>$0.04</td>
                <td>791</td>
                <td>2.8%</td>
                <td>$1.39</td>
            </tr>
            <tr id="r11" class="l2">
                <td></td>
                <td></td>
                <td>iPad Winner</td>
                <td>700,302</td>
                <td>2,472</td>
                <td>98.88</td>
                <td>8.07%</td>
                <td>0.68%</td>
                <td>0.62%</td>
                <td>$0.04</td>
                <td>791</td>
                <td>2.8%</td>
                <td>$1.39</td>
            </tr>
            <tr id="r12" class="l2">
                <td></td>
                <td></td>
                <td>iPad Winner2</td>
                <td>300,302</td>
                <td>2,472</td>
                <td>98.88</td>
                <td>8.07%</td>
                <td>0.68%</td>
                <td>0.62%</td>
                <td>$0.04</td>
                <td>791</td>
                <td>2.8%</td>
                <td>$1.39</td>
            </tr>

      <tr id="r2" class="l1">
                <td><img class="plusminus"  id="r2c1" src="assets/images/plus.png" border="0" />4/10/12</td>
                <td></td>
                <td></td>
                <td>4,4555,55</td>
                <td>27,399</td>
                <td>$500,000</td>
                <td>8.91%</td>
                <td>0.68%</td>
                <td>0.62%</td>
                <td>$0.04</td>
                <td>791</td>
                <td>2.8%</td>
                <td>$1.39</td>
            </tr>

<tr id="r21" class="l2">
                <td><img class="plusminus"  id="r2c1" src="assets/images/plus.png" border="0" />4/10/12</td>
                <td></td>
                <td></td>
                <td>4,4555,55</td>
                <td>27,399</td>
                <td>$500,000</td>
                <td>8.91%</td>
                <td>0.68%</td>
                <td>0.62%</td>
                <td>$0.04</td>
                <td>791</td>
                <td>2.8%</td>
                <td>$1.39</td>
            </tr>
我需要一个基于id匹配模式的过滤结果,并使class=l2。我怎样才能做到这一点

提前感谢

编辑 这应该可以做到:

var pattern = 'r1';//just for example here
$('tr[id^="'+pattern+'"][class=l2]')
您的选择器不工作,因为您正在使用与前缀后跟“-”匹配的“|=”。所以,如果子行的命名约定是r1-1,r1-2,那么该选择器就很好了。您需要使用“^=”来选择以指定字符串开头的属性

就我个人而言,我不需要在子行上有id,只需在子行上指定一个父id作为类-这使事情变得更简单,因此id=r1的所有子行都是这样的

<tr id="r1" class="l1"><td>I am a parent row</td></tr>
<tr class="l2 r1"><td>I am a child row of r1</td></tr>
但这是个人偏好的问题

$('id|=["' + pattern + '"] > .l2')
这意味着:给我一个id前缀为pattern的父级的class.l2的所有子级


编辑:抱歉,注意到您正在查找前缀和更新的代码。

我看没问题。你有什么问题吗?您可能还需要将
l2
放在引号中。或者更好的方法是使用类选择器:
$('tr.l2[…])
。我在每个级别上分配了多个类,比如第一行分配l2 r1,第二行分配l2 r2,依此类推,然后调用基于类的选择器。我真的很喜欢你的实现。将来会有帮助的
$(".l1").click(function(){
var sel = $(this).attr("id");
var children = $("table").find("." + sel)

})
$('id|=["' + pattern + '"] > .l2')