【问题标题】:.attr('data-content') works on one page but not on another.attr('data-content') 在一个页面上有效,但在另一页上无效
【发布时间】:2015-12-23 08:23:34
【问题描述】:

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

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

我有一个弹出框,我想动态更改它的data-content。当我调试它时,正在检索数据,所以问题出在 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 中设置一些静态文本,但每当我尝试更改它时,它从未改变(例如保持“你好”)。在控制台中,没有错误。

有什么帮助吗?

编辑。这是数据库带来的数据的屏幕截图

【问题讨论】:

  • 抱歉,我正在编辑。
  • .attr('content', data.value); 您在此处设置content 属性,而不是data-content。这是您的预期行为吗?
  • 这是我在复制时的拼写错误。即使我使用data-content,它也没有效果。有趣的是,在另一个页面上,这个精确的编码,工作并且数据内容切换得很好
  • 所以检查$("#" + data.xID + "x" + data.yID)是否匹配相关元素,例如:console.log($("#" + data.xID + "x" + data.yID))
  • 确实如此,正在检索数据,我还会显示调试器的屏幕截图以防万一。

标签: javascript jquery ajax twitter-bootstrap


【解决方案1】:

您的元素有id="2#2",但您的选择器代码是$("#" + data.xID + "x" + data.yID)。我不知道这些值是什么,但无论如何这不会产生2#2。您想要x 而不是# 的地方,反之亦然。


我还应该注意,CSS ID 选择器不允许以文字数字开头。也就是说,选择器#2x2#2#2 都无效。如果你在$()单独使用它们,jQuery 会接受它们,因为它会将它们转换为document.getElementById 调用,但它们是无效的,并且如果你将它们与任何东西(@例如,987654331@ 将失败)。

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

【讨论】:

  • 我在这种情况下使用 data-val 来获取 2503x2510 的 ID。 cell = $(this).attr("data-val");
  • @DodoSombrero:那为什么要问data-content?我在那里看不到任何与cell 相关的内容。如果您没有显示要设置 data-content 的元素,为什么不
  • 由于某种原因,data-content 没有使用我从数据库中检索的数据更新我的数据
  • @DodoSombrero:您需要创建一个MCVE,问题不清楚并且至少缺少一些信息(您设置data-content 的元素)。
  • 我更新了一些代码,我无法理解的是,在一个页面中这个确切的编码是如何工作的,但是在这个网页上,当两个页面使用相同的结构时它就不起作用了。会不会是 jQuery 方面的东西?
猜你喜欢
  • 1970-01-01
  • 2015-06-20
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 2022-01-14
  • 1970-01-01
  • 2018-01-30
相关资源
最近更新 更多