1

假设我有类似这样的设置。

<div id="error">
    <p style="color:green">Success.</p>
    <p style="color:red">Failure.</p>
    <p style="color:green">Success.</p>
</div>

在我的javascript中,我运行了这样的东西。

var response = $('#error').html();
if (response.indexOf('red') === -1) {
    /*do stuff if #error has no style tags that have the color:red*/
}

这会起作用还是我需要以不同的方式去做?想了解一下,谢谢

4

2 回答 2

2

那么,如果那不是最好的方法,我应该怎么做呢?

最好的方法(或更好的方法)是给元素一个失败类,p而不是尝试检查样式。但如果你别无选择...

演示

方法有很多种,第一种更接近你最初的思路:

if ($('#error > p[style*="color:red"]').length) {
    console.log('red');
}

我认为另一种方法稍微好一点:

var redPs = $('#error > p').filter(function () {
    return this.style.color === 'red';
});

if (redPs.length) console.log('red again');
于 2013-10-19T05:38:20.537 回答
0

是的,它将采用内联 CSS。如果您尝试过打开控制台,您就会知道这一点。

但是看到你的需要。我建议使用 Jquery 数据属性。通过 jQuery data 属性你可以发现消息是错误还是成功。

于 2013-10-19T05:30:30.587 回答