Javascript jQuery数组函数在每个函数中

Javascript jQuery数组函数在每个函数中,javascript,jquery,arrays,Javascript,Jquery,Arrays,我想我的范围有问题。这是我的html(我知道是“坏”html,但它来自另一个来源): })) 如果b标记内的文本与stxts数组值之一匹配,我想更改包含匹配的b标记的tr标记的背景色。 我做错了什么? 在if语句条件中,我尝试了==比较和==。 在if语句中,我尝试用$(“b”)替换$(this),但没有结果。而不是美元。每个我都尝试了一个for循环,但运气不好。 我肯定我在“函数在另一个函数中”这件事上做错了。 谢谢您的时间。问题是$(这)在您的第二个中。each() 您希望$(this)表示

我想我的范围有问题。这是我的html(我知道是“坏”html,但它来自另一个来源):

}))

如果b标记内的文本与stxts数组值之一匹配,我想更改包含匹配的b标记的tr标记的背景色。 我做错了什么? 在if语句条件中,我尝试了==比较和==。 在if语句中,我尝试用$(“b”)替换$(this),但没有结果。而不是美元。每个我都尝试了一个for循环,但运气不好。 我肯定我在“函数在另一个函数中”这件事上做错了。 谢谢您的时间。

问题是
$(这)
在您的第二个
中。each()

您希望
$(this)
表示第一个
.each()
,但由于您在第二个
中使用
$(this)
。each()
它表示那个

在第一个
.each()
中创建一个变量
$(this)
,类似于:
var$this=$(this)
并使用
$($this).closest(“tr”).css({“背景色”:“绿色”})

$(文档).ready(函数(){
//删除b中的所有跨度
$('b span').contents().unwrap();
//删除“blabla”
$((b:contains('blablabla'))).html(函数(i,文本){
返回文本。替换(/bla/g',);
});
$(“b”)。每个(函数(){
变量$this=$(this)
var bcont=$(this.text().trim();
var stxts=[“这是另一个文本”,“这不应该匹配”];
$.each(stxts,function(i,val){
如果(bcont==val){
$($this).tr.css({
“背景”:“绿色”
});
}
});
});
});

废话
这是另一个文本
布拉布拉布拉这是一个更多的文本

Sarpo,你还有问题吗?@splaten你是对的,我应该学会处理错误以获得更好的结果。对于我们正在检查的代码,您有什么建议?@Sarpo,在使用之前始终检查函数返回代码,函数参数也是如此,始终假设它们可能无效并进行检查。您的规则是,事实上,我已经尝试反转函数(将每个“b”放在每个“数组”中),并且成功了。不管怎么说,你的是个解决办法,我的只是个骗局。比较运算符呢?我应该使用相等还是相同的运算符?@Sarpo我认为使用相等运算符没有任何问题。如果它工作正常,就用它
<table>
    <tr>
        <td>
            <div><b>blablabla <span>some text</span></b></div>
        </td>
    </tr>
    <tr>
        <td>
            <div><b><span>this is another text</span></b></div>
        </td>
    </tr>
    <tr>
        <td>
            <div><b>blablabla <span>this is</span> <span>one more text</span></b></div>
        </td>
    </tr>
</table>
$(document).ready(function() {      
// delete all span in b
$('b span').contents().unwrap();
// delete "blablabla"
$("b:contains('blablabla')").html(function(i, text) {
    return text.replace(/blablabla/g, '');
});

$("b").each(function() {
    var bcont = $(this).text();
    var stxts = [ "this is another text", "this should not match" ];
    $.each(stxts, function(i, val) {
        alert($("b").text());
        if ( bcont == val) {
            $(this).closest("tr").css({"background" : "green"});
        }
    });
});