jQuery将clicked标签转换为字符串

时间:2012-01-22 20:31:06

标签: javascript jquery jquery-plugins javascript-events

如何将点击的标签转换为字符串并传递给textarea:

<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 + '');
});

我得到了字符串中的按钮,但它没有粘贴在textarea ....

1 个答案:

答案 0 :(得分:0)

我编写了一个自定义函数来获取attr列表并附加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;       
}