【问题标题】:howto, Use JQUERY .EACH() but not for a element, for a Variable如何,使用 JQUERY .EACH() 但不用于元素,用于变量
【发布时间】:2011-01-27 02:27:50
【问题描述】:

在 Javascript 中,我有一个变量设置为来自所见即所得编辑器的文本块。

我想使用 JQUERY 的 EACH() 来查找类 XXXX 的跨度。

$( "span.foods" ).each( function() {});

但我希望它在我拥有的 variable=lookhere 中进行搜索,因为我无法直接访问 WYSIWYG 编辑器 (CKEDITOR) 中的文本。

如何做到这一点?

【问题讨论】:

  • 你能更清楚你想要什么吗?您有一个要搜索的元素数组,或者您有一大块文本要在其中查找单词?
  • @TM,我有一大块来自 WYSIWYG 编辑器 (html) 的文本设置为 varialbe=lookHere,我想遍历lookHere 以找到 class="foods"
  • 好问题,非常有用。
  • 是的,完全误解了这一点。您希望对找到的这些字符串做什么?
  • 好吧,我已经编写了其余的程序,但基本上我将使用 SPANS、“id”和“text-in-between-the-span-tag”将它们转换为 JSON 字符串并发布到服务器以插入数据库。

标签: javascript jquery variables each


【解决方案1】:

你想要 $.each(),它可以遍历任何东西,而不仅仅是一个 jQuery 对象。文档:http://api.jquery.com/jQuery.each/

好的,现在我明白了。您似乎想要的将需要与javascript string methods and properties 变得非常舒适,尤其是split()manipulating arrays

【讨论】:

  • 那会找到带有 class="foods" 的 SPANS 吗?我不知道怎么做?
  • 我不这么认为,我认为他想针对变量中的字符串运行 CSS 选择器引擎(如果我正确读取 OP),然后能够迭代结果。
【解决方案2】:
var html = "...";

假设text 包含来自您所见即所得编辑器的整个 html,这些将起作用。基本上这会解析 HTML,构造 DOM,以便我们可以在其上运行选择器。

var nodes = $(html);
$("span.foods", nodes).each(..);

或者等价

$("span.foods", $(html));

【讨论】:

  • +1,这比我建议的插入页面要好。
  • 这不会泄露 DOM 元素吗?它们不会因为指向它们的集合而消失。
  • 这只是一个sn-p。如果这是在全局范围内,那么是的 - var nodes = $(html); 将保留该对象,直到页面卸载或我们对其进行处理。在函数内部,只要没有创建循环引用,只要垃圾收集器在each() 处理完对象后运行,就会回收该对象。
  • 没关系,我认为document 持有对createElemented 节点的引用。我错了。
猜你喜欢
  • 2011-06-18
  • 2015-10-23
  • 1970-01-01
  • 2019-12-21
  • 2013-08-11
  • 2012-06-12
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多