如何为contenteditable div中的每个<p>赋予属性

时间:2016-10-04 07:07:29

标签: javascript html5

现在我使用contenteditable div为我的网站制作了丰富的编辑器。 我使用下面的代码在contenteditable div中创建段落。

document.execCommand('defaultParagraphSeparator', false, 'p')

现在我想给出属性,比如&#39; name&#39; &#39; ID&#39; &#39;类&#39; ,每个<p>。我在互联网上搜索了这个方法但我无法找到任何解决方案。

有没有办法做到这一点?

后记

我这样做了,但我不知道它是不是很好。

<div id='body-text' class='body-text' contenteditable=true data-placeholder='Body Contents'></div>


var randomString = ['sa244', 'g345y', 'dg45t', 'gvr34', 'lutt7', '45btw', 'f3tqa']
var bodyContets = document.getElementById('body-text')
bodyContets.addEventListener('keyup', onKeyUp)

function onKeyUp(e) {
    if ( e.keyCode !== 13 || ( e.keyCode === 13 && (e.shiftKey === true || e.ctrlKey === true || e.altKey === true) )) {
        return false
    }
    var elements = document.getElementsByTagName('p')
    for (var i = 0; i <= elements.length - 1; i++) {
        if(!elements[i].hasOwnProperty('id')) {
            elements[i].id = randomString[i]
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码将属性分配给任何标记。

  

document.getElementsByTagName(“p”)[0] .setAttribute(“id”,“idName”);

在上面的代码中,我将 id = idName 分配给 p 标记。

希望它会有所帮助:)

答案 1 :(得分:0)

通过使用jquery,您可以使用以下代码

  

(文档)$。就绪(函数(){

$("p").attr("attribute", "attributeValue"); 
     

});

不要忘记包含jquery库,否则它将无法正常执行。 (如果你想点击按钮上的功能,可以在 document.ready 之后输入逻辑)