Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 匹配父元素中的文本_Javascript_Jquery_Html - Fatal编程技术网

Javascript 匹配父元素中的文本

Javascript 匹配父元素中的文本,javascript,jquery,html,Javascript,Jquery,Html,我试图检查两个div是否包含相同的文本,如果它们包含相同的文本,则向父div添加样式。 我在下面的代码中工作得很好,但我的问题是所有div都在寻找匹配项,而不仅仅是父级中的div?如果你看下面的 <div class="infobox"> <div class="date">8</div> <div class="secdate">8</div> </div> <div class="infobox"&

我试图检查两个div是否包含相同的文本,如果它们包含相同的文本,则向父div添加样式。 我在下面的代码中工作得很好,但我的问题是所有div都在寻找匹配项,而不仅仅是父级中的div?如果你看下面的

<div class="infobox">
    <div class="date">8</div>
    <div class="secdate">8</div>
</div>
<div class="infobox">
    <div class="date">1</div>
    <div class="secdate">11</div>
</div>
<div class="infobox">
    <div class="date">8</div>
    <div class="secdate">11</div>
</div>


第三个div应用了样式,但不应该应用,因为其中的两个div不匹配?

这似乎更简单:

$('.infobox').each(function () {
    if ($(this).find('.date').text() == $(this).find('.secdate').text()) $(this).css('background', '#ffff00')
})


在父项(信息框)上循环,只需将日期子项的文本与secdate子项进行比较。

这似乎简单得多:

$('.infobox').each(function () {
    if ($(this).find('.date').text() == $(this).find('.secdate').text()) $(this).css('background', '#ffff00')
})


在父项(信息框)上循环,只需将日期子项的文本与secdate子项进行比较。

看起来应该更简单:

jQuery(function ($) {
    $('.date').each(function () {
        var dateText = $(this).text();
        var secdateText = $(this).next('.secdate').text();

        if (dateText == secdateText) {
            $(this).parent().css('background', '#ffff00');
        }
    });
});

看起来应该更简单一些:

jQuery(function ($) {
    $('.date').each(function () {
        var dateText = $(this).text();
        var secdateText = $(this).next('.secdate').text();

        if (dateText == secdateText) {
            $(this).parent().css('background', '#ffff00');
        }
    });
});

我改变了一些事情:

 $(document).ready(function(){
     $('.infobox').each(function () {           
        if( $(this).children('.date').html() == $(this).children('.secdate').html() )
            $(this).css('background', '#ffff00');
     });
 });
这样你甚至不需要一个循环。 我在这里测试过,效果很好:)


希望能有所帮助

我改变了一点:

 $(document).ready(function(){
     $('.infobox').each(function () {           
        if( $(this).children('.date').html() == $(this).children('.secdate').html() )
            $(this).css('background', '#ffff00');
     });
 });
这样你甚至不需要一个循环。 我在这里测试过,效果很好:)


希望它对你有帮助。

你有
$(this.html().split(“”)[0]==$(this.html().split(“”)[0]==$(this.html().split(“”)[0]
(myhtml==myhtml)]。这是你的小提琴,它甚至更好,虽然为了可读性,我还是将其分解为变量。谢谢,这很好,并且解释了很多,但是如果我的标记是这样的,并且我希望将样式应用于类“secdate”,那么,这是一个不同的问题,但我会尝试一下。像这样?这更好,虽然为了可读性我还是把它分成变量。谢谢,这很好,解释了很多,但是如果我的分数是这样的,我想把样式应用到类“secdate”上呢?好吧,这是一个不同的问题,但我会尝试一下。这样地?