是否存在具有特定innerHTML的元素?

时间:2014-04-24 10:40:05

标签: javascript jquery html innerhtml

我有一个包含值的span elemets列表:

    <span>Example1</span>
    <span>Example2</span>
    <span>Example3</span>
    <span>Example4</span>
    <span>Example5</span>

我如何能够检查是否存在例如“Example4”的范围?

我尝试过以下但没有结果:

    if($('span').textContent = value){
     console.log('exists');
    }

    if($('span').html(value){}
    if($('span').html(value).length > 0){}

但他们总是回归真实......

感谢阅读:)

3 个答案:

答案 0 :(得分:4)

有一个:contains选择器:

if ( $('span:contains("Example4")').length > 0 ) { ... }

但是,如果<span>个元素包含"Example 40"等文本,则此方法为will fail。对于严格比较,您可以使用.filter方法使用技巧:

if ( $('span').filter(function() {
    return $.trim($.text(this)) === 'Example4';
}).length > 0 ) { ... }

答案 1 :(得分:0)

如果任何成员匹配给定条件,则Array方法some(IE9 +)返回true:

var matched = $('span').toArray().some(function(node) {
  return node.innerHTML == 'Example4';
});

答案 2 :(得分:0)

请先测试一下,然后用它来装入您的代码块。

    <!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">

    <script src="jquery-1.7.1.js"></script>
    <script type="text/javascript">
        function createElement123(){
            if ( $('span:contains("Example4")').length > 0 ) {
                alert('Exists');
            } else {
                alert('Not Exists');
            }
        }
    </script>
</head>
<body>
    <input type="button" onclick="createElement123()" value="Check Text Exists"/>
    <span>Example1</span>
    <span>Example2</span>
    <span>Example3</span>
    <span>Example4</span>
    <span>Example5</span>

</body>
</html>

希望它能帮助您解决问题。