簡體   English   中英

將html <a>標簽</a>分配<a>給textarea值</a>

[英]Assign html <a> tag to a textarea value

我需要將<a>標記分配給textarea值,並用逗號分隔。 我正在嘗試插入從ajax請求的響應中獲得的電子郵件ID。 如何使用JS實現呢?

我嘗試使用:

$('reminder_email').value += "<a href='#' id='+id'>+email+</a>";

假設'reminder_email'是相關textareaid ,並且響應是一組電子郵件:

var emailAddressesArray = ['emailAddress@host.tld', 'emailAddress2@otherHost.tld'];
$('#reminder_email').val(emailAddressesArray.join(', '));

JS小提琴演示

如果,另一方面,你要創建的HTML a元素與mailto (在其他地方復制/粘貼)協議:

var email = 'emailAddress@host.tld';
$('#reminder_email').val('<a href="mailto:' + email + '">' + email + '</a>');

JS小提琴演示

請注意,您不能在textarea創建可點擊的鏈接,因為它們不能包含HTML( 文本)。

但是,如果您有一個對象可用來創建您的值:

var email = [{
    'address': 'emailAddress@host.tld',
        'id': 'emailOne',
        'text': 'UserNameOne'
}, {
    'address': 'anotherAddress@host2.tld',
        'id': 'emailTwo',
        'text': 'UserNameTwo'
}];
$('#reminder_email').val(function(_, v){
    for (var i = 0, len = email.length; i < len; i++){
        v += '<a href="mailto:' + email[i].address + '" id="' + email[i].id + '">' + email[i].text + '</a>, ';
    }
    return v.slice(0, v.length - 2);
});

JS小提琴演示

您的代碼的原因:

$('reminder_email').value += '<a href='#' id='+id'>+email+</a>;

沒用是雙重的:

  1. $('reminder_email')是一個選擇器,用於查找reminder_email標簽(不存在); 假設這是您要查找的id ,則需要使用: $('#reminder_email')
  2. jQuery對象/集合沒有.value屬性,而是使用val()方法(不帶參數獲取當前值,或帶參數設置新值)。

希望您導入了jQuery,請嘗試以下操作:

$('reminder_email').val("<a href='#' id='"+id+"'>" + email + "</a>");

您要附加嗎? 為什么使用+=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM