Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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查找没有id、名称或类的特定H4_Javascript_Jquery_Html_Each - Fatal编程技术网

Javascript Jquery查找没有id、名称或类的特定H4

Javascript Jquery查找没有id、名称或类的特定H4,javascript,jquery,html,each,Javascript,Jquery,Html,Each,我有一个关于JQuery的简单问题 我有一个包含一些div的main,这些div具有动态id。每个子div中都有一个标记。这些h4没有任何id、类或名称。他们只是有一些文字在里面 我在说的是: <div id="main_div"> <div id ="div01"> <h4>Sometext01</h4> </div> <div id ="div02"> <h4>Som

我有一个关于JQuery的简单问题

我有一个包含一些div的main
,这些div具有动态id。每个子div中都有一个
标记。这些
h4
没有任何id、类或名称。他们只是有一些文字在里面

我在说的是:

<div id="main_div">
   <div id ="div01">
      <h4>Sometext01</h4>
   </div>
   <div id ="div02">
      <h4>Sometext02</h4>
   </div>
   <div id ="div03">
      <h4>Special Text!!!</h4>
   </div>
   <div id ="div04">
      <h4>Sometext04</h4>
   </div>
</div>
我知道我可以使用下面的jQuery函数来查找所需h4的父级

myFoundH4.parent()
但是我在通过h4的文本()或html()搜索h4时遇到了一些麻烦

你能帮我一下吗

非常感谢

几个小时后编辑:

多亏了@Bhushan,我可以做我真正想做的事。它只是有一个限制:我的用户不能更改h4文本,也不能给几个h4提供包含我字符串的相同名称。 对于另一个解决方案,也可以尝试@rory,它对我不起作用,但已经被其他人测试过,而且似乎比contains更好。

您尝试过吗


如果有其他
标签包含包含特殊文本的文本!!!,但您不想选择它们,可以使用
.filter()
,如下所示:

但是,如果有多个
与此文本匹配,它仍然可以匹配多个元素。

您可以使用
过滤器()

这将确保文本属性上的精确匹配,而不是
:contains
选择器将提供的部分匹配<代码>过滤器也应该更快。

试试这个:

$(function(){
var parentId = $('main_div').find('h4:contains("Special Text!!!")').parent().attr('id');
});
更新:罗伊·麦克罗森有一个很好的解决方案。

试试这个:


可能使用
match()
h4
有什么独特之处?这是它的文本值吗?在这种情况下,你只能通过它们的文本或html,或者它们的顺序(它们在你的代码上实现的顺序)来找到它们@TCHdvlp我谦虚的请求是停止共享指向w3schools的链接。学习网络技术最差的地方。如果在h4s中实现,那么它也会选择“123Special Text!!!abcd!”@阿米贾法里:是的,会的。问题使它看起来似乎不是问题,但如果是的话,解决问题并不是那么难。OP明确表示他不想使用
text()
html()
,我是不是遗漏了什么?@AminJafari他说他和它们有问题,并不是说他不想使用它们。谢谢@Rorymcrossan,这是一个好的开始。。。除非它给我“未定义”。如果我只是尝试对$h4.parent()进行排序,它会显示。。所有h4的父母。。。因此,过滤器似乎不起作用。有什么想法吗?(我正在尝试使用contains,即使它不如filter有效)感谢@bhushan Kawadkar,对于我的特定应用,它可以工作!:)
var divId = $("h4:contains('Special Text!!!')").parent().attr('id');
var divId = $("h4:contains('Special Text!!!')").filter(function(i, elt) {
    return $(elt).text() === 'Special Text!!!';
}).parent().attr('id');
var $h4 = $('h4').filter(function() {
    return $(this).text() == 'Special Text!!!';
});
console.log($h4.parent().prop('id'));
$(function(){
var parentId = $('main_div').find('h4:contains("Special Text!!!")').parent().attr('id');
});
$("h4").each(function(inx, elem){
    var pattern = "Special Text!!!", el = $(elem);
    if(el.text() == pattern){
         console.info(el.parent().attr("id"));
    }
});
$("h4").each(function(){
    if($(this).text() === 'Special Text!!!')
    {
        var pid = $(this).parents().attr("id");     
        alert(pid); 
    }
});