0

这是我的浏览器扩展脚本代码。名称数组中的字符串通过使用 javascript 插件用带有 class=".highlight" 的 span 围绕它们来突出显示。当用户将鼠标悬停在突出显示的单词上时,提示插件使用 AJAX 数据创建工具提示。一个 php API 库使用 AJAX 数据来创建一个工具提示,以显示有关给定单词的信息。

我的代码:

var names = ["Barack Obama", "Thursday"];
var number = ["N00007360", "N00001817"];
for (var x = 0; x < names.length; x++) {
    $("div").highlight(names[x], true);
 }
 jQuery(document).ready(function($) {
    Tipped.setDefaultSkin('white');
    Tipped.create(".highlight", "example.php", {
        ajax: { data: { id: "N00007360" }, type: 'post' }
    });
});

我不确定如何在 AJAX 数据部分的数字数组中发送相应的值。到目前为止,为所有突出显示的单词创建了相同的工具提示 - 使用传递给 php API 库的 id N00007360。我需要的是工具提示在数字数组中为悬停的每个单词(名称数组)发送相应的字符串。

示例(我需要的):将鼠标悬停在 Barack Obama 这个词上,ID“N00007360”作为 AJAX 数据发送。将鼠标悬停在单词 Thursday 上,ID“N00001817”作为 AJAX 数据发送。

谢谢您的帮助。

4

1 回答 1

2

我认为这样的事情可能会奏效。

每个对象键都被突出显示,然后为每个突出显示类获取文本并使用它来调用对象键的值

var obj = {
    "Barack Obama" : "N00007360",
    "Thursday"     : "N00001817"
};

jQuery(document).ready(function($) {

    $.each(obj, function(key, value) {
        $("div").highlight(key, true);
    });

    Tipped.setDefaultSkin('white');
    $('.highlight').each(function() {

        var currentKey = $(this).text();
        Tipped.create(this, "example.php", {
            ajax: { data: { id: obj[currentKey] }, type: 'post' }
        });

    });
});

如果您修改突出显示插件以允许添加其他 html 属性,例如 data 属性,那么漏洞可能会更容易,但我想现在这可能就足够了

于 2013-10-12T01:47:58.397 回答