Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 将类添加到包含<;的div中的表中;a>;使用指定的href_Javascript_Jquery_Html - Fatal编程技术网

Javascript 将类添加到包含<;的div中的表中;a>;使用指定的href

Javascript 将类添加到包含<;的div中的表中;a>;使用指定的href,javascript,jquery,html,Javascript,Jquery,Html,在这种情况下,我需要向表中添加一个类,但前提是该表位于id为“mydiv”的div中,并且表中有一行包含 第一个表需要获取新类,第二个和第三个表不需要。要实现这一点,您可以使用has()方法查找表元素,这些元素包含所需的a以及“attribute contains”选择器,以使用myref获取href。试试这个: $('#mydiv table').has('a[href*="myref"]').addClass('myclass'); 搜索名为mydiv-$(“.mydiv”)的类,而不是

在这种情况下,我需要向表中添加一个类,但前提是该表位于id为“mydiv”的div中,并且表中有一行包含
第一个表需要获取新类,第二个和第三个表不需要。

要实现这一点,您可以使用
has()
方法查找
元素,这些元素包含所需的
a
以及“attribute contains”选择器,以使用
myref
获取
href
。试试这个:

$('#mydiv table').has('a[href*="myref"]').addClass('myclass');

搜索名为
mydiv-$(“.mydiv”)
的类,而不是搜索ID

更改代码如下:)

$(“#mydiv”).find(“td”).find(“a[href*='myref']”)。parents(“table”).addClass(“myClass”)
.myClass{
背景颜色:浅蓝色;
}

您可以在目标
td
上使用
closest()
来查找它的父项(
)。然后
$.each()
检查
第一个
表中的每个
td
,并
indexOf()
查找
href
的特定文本

代码片段:

$(函数(){
$('#mydiv表:first td')。每个(函数(){
if($(this).find('a').attr('href').indexOf('myref')!=-1)
$(this).closest(“表”).addClass(“myclass”);
});
})
.myclass{
背景色:红色;
}


这几乎奏效了。不幸的是,它并不总是第一个表(可能不止一个),所以我将
$(“#mydiv table:first td')。
更改为
$(“#mydiv td')。
然后它似乎可以工作(类得到应用)。然而,我刚刚注意到,我在这段代码中遇到了以下错误,这使其他javascript无法工作:“TypeError:$(…).find(…).attr(…)未定义”,知道是什么原因吗?没关系,刚刚发现问题,必须将if语句更改为:
if($(this).find('a').attr('href')&$(this.find('a')).attr('href').indexOf('myref')!=-1)
这是一种非常简单的方法,可以完成看起来相当复杂的任务。一定要去学习更多jQuery。谢谢。@Kees这是最好的答案,非常优化。我没问题。
<div id='mydiv'>
    <a href='blahblah'>Some text</a>
    <table>
        <tbody>
            <tr>
                <td><a href="some href">Some text</a></td>
                <td><a href="javascript:some javascript containing 'myref' in quotes">Some text</a></td>
            </tr>
        </tbody>
    </table>
    <table>
        <tbody>
            <tr>
                <td><a href="some href">Some text</a></td>
                <td><a href="javascript:some javascript without match">Some text</a></td>
            </tr>
        </tbody>
    </table>
</div>
<div id='otherdiv'>
    <table>
        <tbody>
            <tr>
                <td><a href="some href">Some text</a></td>
                <td><a href="javascript:some javascript containing 'myref' in quotes">Some text</a></td>
            </tr>
        </tbody>
    </table>
</div>
$('#mydiv table').has('a[href*="myref"]').addClass('myclass');