javascript - 从属性中获取数据并用它来替换其他文本

标签 javascript jquery replace attributes attr

我正在构建一个图例 - 当用户单击图标时,我想从“data-title”属性中获取数据,然后使用该文本替换当前的“p.map-legend-key__copy”说“标记文本”。

这是到目前为止我的代码...

HTML:

<div class="map-legend">
    <ul class="map-legend-list cf">
        <li class="map-legend-list__item legend-1" data-title="legend one"><i class="fa fa-map-marker"></i></li>
        <li class="map-legend-list__item legend-2" data-title="legend two"><i class="fa fa-map-marker"></i></li>
        <li class="map-legend-list__item legend-3" data-title="legend three"><i class="fa fa-map-marker"></i></li>
        <li class="map-legend-list__item legend-4" data-title="legend four"><i class="fa fa-map-marker"></i></li>
        <li class="map-legend-list__item legend-5" data-title="legend five"><i class="fa fa-map-marker"></i></li>
    </ul>
    <div class="map-legend-key">
        <p class="map-legend-key__copy">Marker text</p>
    </div>
</div><!-- map-legend -->

jQuery:

$('.map-legend-list__item').click(function() {
    var legendText = $(this).attr('data-title');
    $('p.map-legend-key__copy').replace('Marker text', legendText);
});

谢谢, jack 。

最佳答案

应该有

var legendText = $(this).data('title');

如果你想替换整个文本

$('p.map-legend-key__copy').text(legendText);

如果您只想替换标记文本

$('p.map-legend-key__copy').text($('p.map-legend-key__copy').text().replace('Marker text', legendText));

关于javascript - 从属性中获取数据并用它来替换其他文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310417/

相关文章:

javascript - 用 javascript 压缩 XML 文件?

javascript - 让 ajax 获取 html 或获取 JSON 并让 javascript 创建 html 是否更有效

javascript - 去除 JS 设置的 Bootstrap Collapse 内联高度属性

vim - 如何在 vim 中的搜索和替换中操作字符大小写?

javascript - ASCII 控制字符 html 输入文本

javascript - jQuery .html() 的回调函数?

javascript - JS if 语句似乎不起作用

javascript - 使用 JavaScript 选择和操作 CSS 伪元素,例如::before 和::after

javascript - Jquery 字符串替换不起作用

c# - 如何使用 String.Replace