Javascript 在一个div中获取指定的文本,然后在另一个div中搜索它们

Javascript 在一个div中获取指定的文本,然后在另一个div中搜索它们,javascript,jquery,Javascript,Jquery,我试图从一个div中获取文本,然后我想在同一页上搜索这些标题,但在不同的div中。如果其中一个标题存在,我想在它后面放一些文本。我试着去做,但我不知道问题出在哪里。上次我用jquery代码尝试它时: var cim = $.trim($('.hirblokk span.comments:contains("új")').parent(".hirblokk").children("h3").text()); jQuery.each(cim, function(X) { $("ul.s_hi

我试图从一个div中获取文本,然后我想在同一页上搜索这些标题,但在不同的div中。如果其中一个标题存在,我想在它后面放一些文本。我试着去做,但我不知道问题出在哪里。上次我用jquery代码尝试它时:

var cim = $.trim($('.hirblokk span.comments:contains("új")').parent(".hirblokk").children("h3").text());
jQuery.each(cim, function(X) {
    $("ul.s_hir.show li.hir a:contains(X)").find("small").append(" (Új!)");
    return (this == cim.length);
});
正如你所看到的,我把我想要的文本放到了“cim”(它正在工作)。然后我尝试(第3行)检查“ul.s_hir.show li.hir a”中是否有一个包含文本,如果它包含文本,我在小标记中添加(附加)一些内容(标记中有一个小标记:text..)(这不起作用)。我尝试了更多的方法,但没有一种有效。 如果我写:

$("ul.s_hir.show li.hir a:contains(a)").find("small").append(" (Új!)");
当a包含一个字符时,它会在每个小标记后面加上“(Új)”。所以看起来问题在于我如何检查它是否包含一个文本。
哦,我可以得到更多的文本,例如:“我是新的”和“哦,你好,亲爱的”,其中只有一个包含*ul.s_hir.show li.hir a*

我不确定我是否完全理解您要搜索的文本,但我发现了几个问题:

  • 您的cim var是一个字符串:正如jQuery文档所解释的那样,.text()方法的结果是一个包含所有匹配元素的组合文本的字符串。因此,如果有多个元素与选择器匹配,cim将是一个所有文本串联的字符串

  • each()迭代cim的每个字符,X是字符串中字符的索引,而不是值

  • 在第三行中,X不是作为var计算的,因为它在双引号中

  • 我不明白您使用
    return(this==cim.length)
    体验的是什么:您正在将一个数字(cim.length)与一个字符串(当前计算的每个值)进行比较

试着这样做:

// titles contain all the h3 elements you're searching
var titles = $('.hirblokk  span.comments:contains("új")').parent(".hirblokk").children("h3"));
// you're iterating on each title
jQuery.each(titles, function(index,title) {
  // you're searching links elements containing each title text
  var text = $.trim($(title).text());
  $("ul.s_hir.show li.hir a:contains("+text+")").find("small").append(" (Új!)");
});

谢谢你的详细回答,我试过了,它正在工作!:)有一些小错误,但谁在乎,我可以删除一些字符:)再次感谢!