jQuery .html()|它会包括内联风格吗?

时间:2013-10-19 05:25:04

标签: javascript jquery html css

说我有类似这样的设置。

<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*/
}

这样做还是我需要以不同的方式做这件事?我想要一些见解,谢谢。

2 个答案:

答案 0 :(得分:2)

  

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

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

DEMO

有各种各样的方法,第一种方式更接近你最初的思路:

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');

答案 1 :(得分:0)

是的,它将采用内联CSS。如果你试过打开一个控制台,你就知道了。

然而,看到你的需要。我建议使用Jquery数据属性。传递jQuery数据属性,您可以找到消息是错误还是成功。