使用JavaScript从文本区域提取所有h6标记
这就是我想要做的 1:有一个jQuery WYSIWYG编辑器,允许用户输入文本 2:有一个框,显示从WYSIWYG编辑器中提取的文本,该文本仅可查看。提取的文本应标上项目符号。每个项目符号项都应该是所见即所得标签中包含的任何内容 例如: 所见即所得编辑器将包含以下文本:使用JavaScript从文本区域提取所有h6标记,javascript,jquery,wysiwyg,Javascript,Jquery,Wysiwyg,这就是我想要做的 1:有一个jQuery WYSIWYG编辑器,允许用户输入文本 2:有一个框,显示从WYSIWYG编辑器中提取的文本,该文本仅可查看。提取的文本应标上项目符号。每个项目符号项都应该是所见即所得标签中包含的任何内容 例如: 所见即所得编辑器将包含以下文本: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ut ipsum eget enim porttitor pretium. <h6>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas ut ipsum eget
enim porttitor pretium. <h6>Ut eget purus.</h6> In nisi congue accumsan. Nulla
mattis nisl at dui porta non lacinia nulla condimentum. <h6>Maecenas convallis
suscipit magna et venenatis.</h6> Phasellus a justo sed mauris hendrerit porttitor.
下面的“仅查看”框将显示:
-乌特埃吉特普鲁斯酒店
-马塞纳斯·康瓦利斯·苏西比特·马格纳和威尼斯人
谢谢你的帮助 在jQuery中,您可以使用
h6s = $('#wysiwyg h6');
在jQuery中,您可以使用
h6s = $('#wysiwyg h6');
您可以创建一个不可见的DIV,将HTML放入innerHTML属性,然后以JQuery非常喜欢的方式查询h6。我不会说JQuery,但它应该是$h6之类的,当然,这要求您的HTML输入是有效的。您可以创建一个不可见的DIV,将HTML放入innerHTML属性,然后以JQuery非常喜欢的方式查询h6。我不会说JQuery,但它应该是$h6之类的内容,当然,这要求您的HTML输入是有效的
var text = 'foo <h6>head1</h6> bar <h6>head2</h6> waa';
var regex = /\<h6.*?\>(.*?)\<\/h6\>/g;
var match = null;
while (match = regex.exec(text)) {
alert(match[1]); // head1, head2.
}
自担风险使用
编辑:哦,我错过了jQuery的文章。继续使用建议的jQuery解决方案,它会更好:
自担风险使用
编辑:哦,我错过了jQuery的文章。继续使用建议的jQuery解决方案,它会更好:灵感来自Pekka:
var editorContents = $('<div/>'); // Inject the stuff from the textbox
editorContents.html( $('#editor').val() ); // into the DOM.
// Adjust to taste -- this is where we're putting the info we extract.
var bulletList = $('<ul/>').class('whatever').appendTo('wherever');
// Now just find the headings and put their contents into bullet points.
$('h6', editorContents).each( function (i) {
$('<li/>').text( this.text() ).appendTo(bulletList);
} );
如果反复执行此操作,您将希望重用bulletList,并且您将希望重用EditorContent或其他内容。每次使用完后都将其删除,以防止DOM对象到处泄漏:
哦,您可能想使用.html而不是.text来将h6的内容传输到li。由您决定。灵感由Pekka提供:
var editorContents = $('<div/>'); // Inject the stuff from the textbox
editorContents.html( $('#editor').val() ); // into the DOM.
// Adjust to taste -- this is where we're putting the info we extract.
var bulletList = $('<ul/>').class('whatever').appendTo('wherever');
// Now just find the headings and put their contents into bullet points.
$('h6', editorContents).each( function (i) {
$('<li/>').text( this.text() ).appendTo(bulletList);
} );
如果反复执行此操作,您将希望重用bulletList,并且您将希望重用EditorContent或其他内容。每次使用完后都将其删除,以防止DOM对象到处泄漏:
哦,您可能想使用.html而不是.text来将h6的内容传输到li。取决于您。您能为所见即所得输入使用代码块重新格式化您的帖子吗?除非转义,否则StackOverflow会咀嚼。请使用代码块为您的所见即所得输入重新格式化您的帖子好吗?霍布斯,谢谢你的灵感。我一直在玩这个,还没能得到端到端。老实说,我没有完全理解逻辑背后的天才。你能帮我给出一个使用下面代码的工作示例吗?Thanksher的一些工作代码-我不会说它是好代码,但它工作。为了简单起见,我放弃了WYSIWIG编辑器只需在文本框中键入一些HTML,其中包含一些h6标记。霍布斯,谢谢你的灵感。我一直在玩这个,还没能得到端到端。老实说,我没有完全理解逻辑背后的天才。你能帮我给出一个使用下面代码的工作示例吗?Thanksher的一些工作代码-我不会说它是好代码,但它工作。为了简单起见,我放弃了WYSIWIG编辑器只需在文本框中键入一些HTML,其中包含一些h6标记。只需尝试。。。代码:h6s=$'markItUp h6';$'blahblah'.htmlh6s;警报h6s;返回false;这似乎不起作用。我是否需要以某种方式循环h6s var?谢谢,jQuery返回了一个类似数组的结构。。。代码:h6s=$'markItUp h6';$'blahblah'.htmlh6s;警报h6s;返回false;这似乎不起作用。我是否需要以某种方式循环h6s var?谢谢,jQuery返回一个类似数组的结构。