分配html <a> tag to a textarea value</a>

时间:2013-09-21 10:09:33

标签: javascript

我需要为textarea值分配一个<a>标记,用逗号分隔。我正在尝试插入从ajax请求的响应中获得的电子邮件ID。我如何使用JS实现这一目标?

我尝试使用:

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

2 个答案:

答案 0 :(得分:0)

假设'reminder_email'是相关id的{​​{1}},并且回复是一组电子邮件:

textarea

JS Fiddle demo

另一方面,如果您尝试使用var emailAddressesArray = ['emailAddress@host.tld', 'emailAddress2@otherHost.tld']; $('#reminder_email').val(emailAddressesArray.join(', ')); 协议创建a元素的HTML(用于在其他位置复制/粘贴):

mailto

JS Fiddle demo

请注意,您无法在var email = 'emailAddress@host.tld'; $('#reminder_email').val('<a href="mailto:' + email + '">' + email + '</a>'); 内创建可点击的链接,因为它们不能包含HTML(只是文本)。

但是,如果您有一个可以创建价值的对象:

textarea

JS Fiddle demo

您的代码的原因:

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

不起作用是双重的:

  1. $('reminder_email').value += '<a href='#' id='+id'>+email+</a>; 是一个寻找$('reminder_email')标签的选择器(不存在);假设您正在寻找reminder_email,则需要使用:id
  2. jQuery对象/集合没有$('#reminder_email')属性,而是使用.value方法(没有获取当前值的参数,或者使用的参数设置一个新值。)。

答案 1 :(得分:0)

希望你导入jquery,试试这个:

$('reminder_email').val("<a href='#' id='"+id+"'>" + email + "</a>");
你正在追加吗?为什么使用+=