.attr('数据内容')在一个页面上工作,但在另一个页面上不工作

时间:2015-12-23 08:23:35

标签: javascript jquery ajax twitter-bootstrap

我一直试图解决这个问题已经有一段时间了,现在我真的没有选择了。我正在使用jQuery,MVC并且有一个ajax调用,它基本上会检索一些我想在Bootstrap popover中显示的数据。

现在,这部分代码在一个视图中完美运行,但在另一个页面中,此代码拒绝执行任何操作。现在我不知道错误是在jQuery还是bootstrap中。

我有一个popover,我想动态更改其data-content。当我调试它时,正在检索Data IS,因此问题出在jQuery中。

     $(".test").mouseover(function () {
     cell = $(this).attr("data-val");
    $.ajax({
        url: '/Input/GetExpenditureEntityCell',
        data: { CellID: cell },
        success: function (data) {
            debugger;



            alert(data.xID + "x" + data.yID + "\n" + data.value)
            $("#" + data.xID + "x" + data.yID).addClass("hasComment");
            $("#" + data.xID + "x" + data.yID).attr('data-content', data.value);

        }
    });
});

这就是我打电话的地方。

 <a href="#" data-trigger="hover" data-toggle="popover" data-val="2503x2510" data-target="#expModal" class="btn btn-default btn-block btn-lg value test" id="2#2">

1)基本上我喜欢电子表格单元格,其中每个都有ID,在悬停时我想要检索该特定单元格的数据。我尝试了多种方法,destroy,依此类推。

2)我首先尝试在data-content中设置一些静态文本,但每当我尝试更改它时,它都不会改变(例如,保持&#39;你好&#39;)。在控制台中,没有错误。

请帮忙吗?

修改即可。这是数据库带来的数据的屏幕截图 Debugger Alert

1 个答案:

答案 0 :(得分:1)

您的元素有id="2#2",但您的选择代码为$("#" + data.xID + "x" + data.yID)。我不知道这些值是什么,但不管是不会产生2#2。在某处您需要x而不是#,反之亦然。

我还应该注意,CSS ID选择器不允许以字面数字开头。也就是说,选择器#2x2#2#2都是无效的。如果您在$()中使用自己,jQuery会接受它们,因为它会将它们转换为document.getElementById次调用,但它们无效,如果您将它们合并将无效任何事情($("#2x2 span")将失败,例如)。

如果您要使用CSS ID选择器,最好以非数字开头。如果你不能,那么使用属性选择器语法使其有效而不会进入复杂的转义:$('[id="#2x2"]')