javascript - 将属性值从一个属性复制到另一个属性中的内部字符串

标签 javascript jquery attributes

我有一个 <A>标签,我需要在其中复制 HREF 的值属性到 REL 中的内部字符串属性。具体来说:

<a href="XX-some-link-XX" class="cloud-zoom-gallery small" 
rel="useZoom: 'zoom1', smallimage: 'XX-this-is-where-i-want-to-copy-that-link-XX'">
<img />
</a>

我已经能够通过执行以下操作部分实现这一点:

jQuery(document).ready(function() {
jQuery(".small").each(function() {
    var src = jQuery(this).attr('href');
    var a = jQuery(this).attr('rel', src);
});
});

但这会删除 REL 中的其他数据属性(例如 useZoom )。

所以我的问题是 - 如何复制 attr 值并将其粘贴到另一个属性值的特定字符串中?

最佳答案

太糟糕了,您的 rel 不是格式正确的 JSON 对象,或者您可以使用 JSON.parse() 来完成这项工作。

这可能很麻烦,但它非常具有普遍性。

$(function() {
    var $jq = $("a:eq(0)");
    var j = relParser($jq.attr("rel"));
    j["smallimage"] = $jq.attr("href");
    $jq.attr("rel",relBuilder(j));
    alert(relBuilder(j));
})

function relBuilder(obj) {
    var arr = [];
    for (attr in obj) {
        arr.push(attr+": '"+obj[attr]+"'");
    }
    return arr.join(", ");
}
function relParser(str) {
    var arr = str.split(",");
    var obj = {}; 
    for (var i=0; i<arr.length; i++) {
        var tmp = arr[i].split(":");
        obj[tmp[0].trim()] = tmp[1].trim();
    }
    return obj;
}
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}

关于javascript - 将属性值从一个属性复制到另一个属性中的内部字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275004/

相关文章:

javascript - 在 iOS 中从网页执行 JS 函数

javascript - 如何通过代码反转Highcharts中的图表?

c# - 限制方法/构造函数中的 'Type' 参数

python - 在 Python 中一次为一个对象分配多个属性

javascript - JavaScript 中的 Switch 语句

javascript - 为什么原子操作没有逻辑否定?

javascript - 如何选择子 ul 而不是父 ul?

Java自动属性比较

javascript - 将javascript变量获取到web浏览器控件winforms中

javascript - setinterval方法不起作用