【问题标题】:jQuery convert clicked tag to stringjQuery将点击的标签转换为字符串
【发布时间】:2012-01-22 20:31:05
【问题描述】:

如何将点击的标签转换为字符串并传递给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....

【问题讨论】:

标签: javascript jquery jquery-plugins jquery-events


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 2013-08-14
    • 2021-11-07
    • 2021-05-13
    • 2015-08-10
    • 1970-01-01
    • 2011-11-25
    • 2014-04-26
    • 2017-11-13
    相关资源
    最近更新 更多