2012-01-22 37 views
0

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

<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> 

我尝试,但没有seccess(不工作):

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中......

+0

解决...... http://jsfiddle.net/ArtofLife/u9d9d/ –

+0

在FF,它显示在textarea的 '未定义' –

回答

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;  
}