如何使用 jQuery 替换文本区域内的属性内容?

How can I use jQuery to replace the content of an attribute inside of a textarea?

我有这个代码:

<textarea class="mapCode">
<    area shape="rect" coords="" href="http://www.sitehere" target="_self">
</textarea>

如何使用 jQuery 到 insert/update 值到坐标属性中,即使它不为空?

现在我正在使用...

return $(this).text().replace("coords=\"\"", 'coords="'+selection.x1+','+selection.y1+','+selection.x2+','+selection.y2+'"');

但是当然这只有效一次,因为它总是在寻找一个空的 coords="" 属性。

<textarea class="mapCode">
   <area id="myArea" shape="rect" coords="" href="http://www.sitehere" target="_self">
</textarea>

JavaScript:

$(function () {
    var myArea = $('#myArea');
    myArea.attr('coords', selection.x1+','+selection.y1+','+selection.x2+','+selection.y2);

});​

您应该在替换调用中使用带通配符的正则表达式:

$(this).text().replace(/coords=".*"/gi, 'coords="..."');

这将适用于空坐标属性和设置坐标属性。

您可以将 textarea 内容包装在 jQuery 对象中,然后使用任何相关方法更新它,例如:

var $content = $('<div/>').html($('.mapCode').val());
$content.find('area').attr('coords', selection.x1+','+selection.y1+','+selection.x2+','+selection.y2);

$('.mapCode').val($content.html());

-DEMO-