如何将动态生成的ID传递给Jquery

时间:2011-09-28 15:58:05

标签: jquery

我正在使用一个很好的Jquery context menu,它以

的形式返回我的元素的ID
$(context).attr('id')

而不是

形式
$(this).attr('id')

由于我正在为大量元素使用单个上下文菜单,其中每个元素都有其唯一ID。上下文菜单完美地运行,因为它执行相对于由其唯一ID标识的被点击元素的命令。

我使用上下文菜单通过$ .get将数据写入MySQl数据库,这也适用。

但是现在我想使用从$ .get返回的数据,并使用.replaceWith方法更改一些文本而不刷新页面:

$.get("jq_get_go.php", { parameter2: $(this).attr('menuCommand'), id: $(context).attr('id') }, 
    function(data) {
        $(".ci_saremo").xxxxx.replaceWith('<li class="Like ci_saremo" id="' + $(context).attr('id') + '"><a href="">' + data + '</a></li>');
    }
);

我不明白应该用什么替换xxxxx来获取我知道我在这里的元素的ID

$(context).attr('id')

当然,如果我省略xxxxx并离开

$(".ci_saremo").replaceWith('<li class="Like ci_saremo" id="' + $(context).attr('id') + '"><a href="">' + data + '</a></li>');

每个“.ci_saremo”文本都将被替换。所以我需要通过它的ID来识别它。基本上,我不明白如何在上面的字符串中链接/插入$(context).attr('id')

3 个答案:

答案 0 :(得分:3)

这应该这样做:

$('#'+$(context).attr('id')).replaceWith...

答案 1 :(得分:1)

我可能误解了您的意图,但看起来您似乎正在尝试替换link项内的li文本。如果是这样,你应该能够这样做:

$(context).
    .find(".ci_saremo")
    .replaceWith('<li class="Like ci_saremo" id="' + $(context).attr('id') + '"><a href="">' + data + '</a></li>');

find方法将抓取 .ci_saremo中的$(context).attr('id')元素。这应该隔离您想要更改的单个元素。

<强> EDITED

答案 2 :(得分:0)

如果$(context).attr('id')返回ID,那是否意味着context是您的元素?

如果是这样,你不能这样做吗?

$(context).replaceWith('<li class="Like ci_saremo" id="' + $(context).attr('id') + '"><a href="">' + data + '</a></li>');