如何将此函数应用于以下JsonML中的每个匹配元素
How to make this function apply on each matched element in the following JsonML?
我通过markdown js生成了以下JsonML:
[ 'markdown',
[ 'para', 'This is a paragraph.' ],
[ 'para', 'Another paragraph' ] ]
我想做的是将类noind
添加到每个段落标记中。完整代码:
var text = "This is a paragraph.'n'n" +
"Another paragraph"
// parse the markdown into a tree and grab the link references
var tree = md.parse(text)
var refs = tree[1]
//console.log(refs)
;(function update_paras(jsonml) {
if (jsonml[1][0] === 'para') {
var par = jsonml[1]
par.splice(1,0,{'class': 'noind'})
}
})(tree)
var html = md.renderJsonML(md.toHTMLTree(tree))
console.log(html)
现在这个类只添加到第一段:
<p class="noind">This is a paragraph.</p>
<p>Another paragraph</p>
我如何才能将类添加到所有类中?
编辑:
在Gitub上的例子中,他们做了这样的事情(使用link_refs):
if (jsonml[0] === "link_ref") {
// some code
} else if (Array.isArray(jsonml[1])) {
jsonml[1].forEach(find_link_refs)
} else if (Array.isArray(jsonml[2])) {
jsonml[2].forEach(find_link_refs)
}
不过,我不太理解代码。当我尝试同样的方法时,它没有起作用(仍然只有第一段获得了课程)。
不是专家,但这看起来更适合作为答案而不是注释。
您是否尝试过创建一个遍历jsonml数组中所有元素的循环(现在只读取第一个)?类似这样的东西:
;(function update_paras(jsonml) {
for (x = 1; x < jsonml.length; x++) {
if (jsonml[x][0] === 'para') {
var par = jsonml[x]
par.splice(1,0,{'class': 'noind'})
}
}
})(tree)
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何使用jquery处理php循环通过元素
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 在Jquery detachment()和appendTo()之后定位元素
- 如何将此函数应用于以下JsonML中的每个匹配元素
- 使用JsonML将数组元素追加到li's