如何,使用 JQUERY .EACH() 但不用于元素,用于变量
Posted
技术标签:
【中文标题】如何,使用 JQUERY .EACH() 但不用于元素,用于变量【英文标题】:howto, Use JQUERY .EACH() but not for a element, for a Variable 【发布时间】: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 字符串并发布到服务器以插入数据库。 【参考方案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
持有对createElement
ed 节点的引用。我错了。以上是关于如何,使用 JQUERY .EACH() 但不用于元素,用于变量的主要内容,如果未能解决你的问题,请参考以下文章