jQuery查找DOM字符串中是否存在id = X的div

时间:2010-11-11 11:12:37

标签: javascript jquery

我正在尝试检查一个带有id的div是否存在于包含一些html的字符串中,所以我正在寻找一个返回true或false的函数。

有一个函数hasClass检查div是否具有某个类

$('#mydiv').hasClass('bar')

我想我正在寻找的是像

var mystring = "some string with html";

mystring.hasId('lookingforthisid');

我该怎么检查?

3 个答案:

答案 0 :(得分:2)

将其转换为jquery对象并使用.find()方法找到所需的元素

var mystring = "some string with html";

var $mystring = $('<div>'  + mystring + '</div>');

alert( $mystring.find('#lookingforthisid').length );

如果.length大于0则存在..


改进/推广

如果你想创建一个通用函数来检查字符串是否包含一些jquery选择器,你可以这样做

String.prototype.hasSelector = function( aSelector ){
    return ($( '<div>' + this.toString() +'</div>').find( aSelector ).length>0) ? true : false;
};

并像这样使用

var mystring = 'test <div id="someid">text in ID</div> outer <div class="someclass">text in class</div> ';

alert( mystring.hasSelector('#someid') );
alert( mystring.hasSelector('.someclass') );

http://www.jsfiddle.net/gaby/Ajp7K/

的实例

答案 1 :(得分:1)

  

jquery查找id = X的div是否存在

使用length

if($('#mydiv').length > 0){
  // element exists
}
else{
 // element does not exist
}

您可以将其转换为如下函数:

function element_exists(id){
    if($(id).length > 0){
      return true;
    }

    return false;
}

并使用如下:

if (element_exists('#some_id')){
  // element exists
}
else{
  // element doesn't exists
}

如果要检查是否存在具有某个类的元素,则可以使用hasClass方法。

如果要检查是否存在包含特定文本的元素,则可以使用:contains过滤器选择器。这是一个例子:

alert($('#element_id:contains("some text")').length);

答案 2 :(得分:0)

查找元素是否存在于HTML字符串中:

if($("div#mydiv", mystring).length >= 1) {
    return true;
} else {
    return false;
}