我正在尝试检查一个带有id的div是否存在于包含一些html的字符串中,所以我正在寻找一个返回true或false的函数。
有一个函数hasClass检查div是否具有某个类
$('#mydiv').hasClass('bar')
我想我正在寻找的是像
var mystring = "some string with html";
mystring.hasId('lookingforthisid');
我该怎么检查?
答案 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') );
的实例
答案 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;
}