Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 能否使用jquery查看目标是否包含<;b>;标签?_Javascript_Jquery - Fatal编程技术网

Javascript 能否使用jquery查看目标是否包含<;b>;标签?

Javascript 能否使用jquery查看目标是否包含<;b>;标签?,javascript,jquery,Javascript,Jquery,所以,我有类似的东西 var $list = $("div#item"); 我正在查看选择器中的:contains,但我不确定这是否适用于标记,或者我是否应该执行以下操作: if($list.find("<b>"))return 1; else return 0; if($list.find(“”)返回1; 否则返回0; 推理:向使用内联标记的程序添加功能,并希望维护结构 目标:如果(项目包含内联b、u、i标签)返回1;否则返回0 您可以将其简化为单个选择器。查找(“b,

所以,我有类似的东西

 var $list = $("div#item");
我正在查看选择器中的:contains,但我不确定这是否适用于标记,或者我是否应该执行以下操作:

 if($list.find("<b>"))return 1;
 else return 0;
if($list.find(“”)返回1;
否则返回0;
推理:向使用内联标记的程序添加功能,并希望维护结构


目标:如果(项目包含内联b、u、i标签)返回1;否则返回0

您可以将其简化为单个选择器
。查找(“b,i,u”)
并返回布尔比较
length>0
。如果在
#项
内找到任何标签,则总长度将为
>0

return $("#item").find("b,i,u").length > 0;

编辑:如果您真的想要一个
数字
零或一回而不是
布尔值
,请使用三元:

return $("#item").find("b,i,u").length > 0 ? 1 : 0;
不需要jQuery

如果您需要支持IE7及更旧版本的浏览器,请尝试以下操作:

var elem = document.getElementById('item');
return elem.getElementsByTagName('b').length
     + elem.getElementsByTagName('i').length
     + elem.getElementsByTagName('u').length == 0 ? 0 : 1;
也许可以使用
.has()
方法

$('li').has('ul')

您也可以使用.has()函数来实现这一点

我不确定它是否最有效,但我会使用
.find
来实现这一点

function hasInline(targetElement) { 
  return ($(targetElement).find('b,u,i').length > 0); 
}
我还建议扩展该函数,以便您可以指定要检查的任何内联标记,如:

// NOTE: This will return true if the element has ANY of the tags provided.
function hasInlineTags(targetElement, listOfTags) { 
  return ($(targetElement).find(listOfTags.join(',')).length > 0); 
}

// Call it with whatever tags you want.
hasInlineTags($("div#item"), ['b','u','i']);

如果您正在使用jQuery:

var styleElements = $('b,u,i', $list)
使用:


甚至更短,
$(#item”).find(“b,i,u”).length
:)嗯,我知道布尔逻辑,因为它会返回true或false,但true和false也会被识别为1或0吗?或者我需要做一个小的调整吗?@fallereneaper你可以把它用一个三元组包起来。上面已编辑。可能想使用
===
而不是
=
@DavidHoerster为什么?长度之和可以不是整数吗?什么是文字
0
而不是整数?很抱歉重复
。请查找上面的建议。答案是在我写我的答案时发布的,在提交之前我没有加载它们。+1 for有我不知道的方法,但它仍然返回jQuery元素。但是,如果使用.has(…).length,它将产生0或1,这是OP所寻找的解决方案。
var styleElements = $('b,u,i', $list)
return (styleElements.length) ? 1 : 0;