捕捉文本中的换行符
Catching Line Breaks in Text
所以我用javascript分析了一堆HTML,这样我就可以把这篇文章减少到30个字符,并附加一些类似"。。。问题是文本块被BR
标签隔开。这是我的密码;
<head runat="server">
<title></title>
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
window.onload = function onLoad() {
alert("Start");
var intros = this.document.getElementById('EventContent');
if (intros) {
for (i = 0; i < intros.length; i++) {
var els = intros[i].childNodes;
if (els) {
for (j = 0; j < els.length; j++) {
alert(els[j].tagName)
}
}
}
}
alert("Start");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="EventContent">
<br />
<br />
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<br />
</div>
</form>
</body>
但是我的警报标记名从不显示,尽管我确实收到了START
和END
的警报。我做错了什么?我怎么能赶上那些愚蠢的断线。。。
document.getElementById
只返回一个元素;不要试图绕过它。
window.onload = function() {
alert("Start");
var intro = document.getElementById('EventContent');
var els = intro.childNodes;
for (var i = 0; i < els.length; i++) {
alert(els[i].tagName);
}
alert("Stop");
};
至于你只检索文本的最终目标,试试这个:
function getText(element) {
var i, c, r = '';
for(i = 0; c = element.childNodes[i]; i++) {
if(c.nodeType === 3) {
r += c.nodeValue;
}
}
return r.replace(/^'s+|'s+$/g, '');
}
您的变量'intros'不是数组,因此intros.length是未定义的。您只需要迭代intros.childNodes
<head runat="server">
<title></title>
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
window.onload = function onLoad() {
alert("Start");
var intros = this.document.getElementById('EventContent');
if (intros) {
for (i = 0; i < intros.childNodes.length; i++) {
alert(intros.childNodes[i].tagName)
}
}
alert("Start");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="EventContent">
<br />
<br />
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<br />
</div>
</form>
</body>
也就是说,如果您无论如何都在使用jquery,您可能希望以这种方式进行尝试。
也就是说,与其迭代子节点,我可能只需要获取div(div.innerHTML)的内容,regex <br />
的内容并替换为换行符,然后使用子字符串将前30个字符从其余字符中分离出来。
哦,正如上面所建议的,使用调试器。
- Firefox:http://getfirebug.com/
- 铬:https://developers.google.com/chrome-developer-tools/
- 即:http://www.debugbar.com/
相关文章:
- 在文本区域中使用jQuery.text()保持换行符
- 文本区域-获取每一行,找到换行符
- 在文本区域中保留换行符.value
- 捕捉文本中的换行符
- 根据换行符选择文本
- 如何替换文本区域中的换行符
- 将 .append() 与列表一起使用会将文本放在换行符上
- 如何从文本区域获取文本,包括换行符
- 如何从文本区域获取换行符
- 测试光标是否位于文本区域中的第一行(使用软换行符)
- 有没有一种方法可以用包含ENTER键换行符的SQL数据填充文本区域表单
- 将换行符添加到.text内容文本
- 文本区域换行符未显示
- 删除文本区域中某个文本后出现的换行符
- 通过javascript保留文本区域换行符
- D3 垂直条形图为标签文本添加换行符
- 返回标签的文本值,并在每个标签后附加换行符
- 为图像上绝对定位的文本块添加换行符以创建文本条带
- 如何从保留换行符的 window.prompt() 返回文本
- 如何检测文本区域输入中的换行符