JQuery конвертировать кликнул тег на строку - PullRequest
0 голосов
/ 23 января 2012

Как преобразовать выбранный тег в строку и перейти к текстовой области:

<div class="wrapper">
    <textarea name="button_code">
        Here should be pasted actual code from clicked tag:
    </textarea>
</div>
<button class=insert name=insert>Insert</button>

Я пытаюсь, но безуспешно (не работает):

var pos = 0;
$('textarea').click(function() {
    var pos = $(this).attr("name");
    return false;
});

$('.insert').click(function() {
var tt = $(this).prop('outerHTML');
var str = new String(tt);
    $('textarea[name^="' + pos + '"]').insertAtCaret('' + str + '');
});

Я получаю кнопку в строке, но она не вставляется в текстовое поле ....

1 Ответ

0 голосов
/ 23 января 2012

Я написал пользовательскую функцию для получения списка атрибутов и добавил tagName, чтобы получить полный HTML-элемент, который передается в функцию.

DEMO здесь

function getHTMLElementAsStr(el) {

    var attr, attrs;       
    var elNodeName = el.nodeName.toLowerCase();
    var elTmpl = '<' + elNodeName + '{ATTR_LIST}>' + el.innerHTML + '</' + elNodeName + '>';

    var result = '';
    for (var i=0, attrs=el.attributes, l=attrs.length; i<l; i++){
        attr = attrs.item(i);

        //i assume that you don't need quotes for attr value.. if needed.. modify this line as needed
        result += ' ' + attr.nodeName + '=' + attr.nodeValue;
    }

    result = elTmpl.replace (/{ATTR_LIST}/, result);

    return result;       
}
...