javascript - jquery 之外的 DOM 操作

标签 javascript jquery dom d3.js svg

我在同一个脚本中使用 Jquery 和 D3.js。我有一个使用 D3.js 修改的 svg 元素。然后,当我使用 Jquery 对该元素进行选择时,我看不到 D3.js 所做的修改。

开头的 DOM:

<svg>
  <g id="myId"></g>
</svg>

用D3.js修改后的DOM:

<svg>
  <g id="myId" transform="translate(10, 10)"></g>
</svg>

然后:

$("#myId").attr("transform") --> return undefined.

我不明白这里出了什么问题。有什么想法吗?

最佳答案

在不提供更多代码的情况下,很难确切地说出是什么导致了您的问题,但是听起来问题就像您的代码异步执行一样。 Sugar Patro 的答案可能有效,但在我看来代码看起来相当臃肿。

您可以使用.call()

selection.transition()
    .call(endAll, function () {
        console.log("All the transitions have ended!");
    });

function endAll(){
  //Perform your logic here 
  var transform = $("#myId").attr("transform");
}

这个答案进一步详细说明了过渡结束。 Here .

关于javascript - jquery 之外的 DOM 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163608/

相关文章:

javascript - 如何隐藏除特定 block 之外的所有内容? (JavaScript)

javascript - emscripten 在 C 中读取 javascript arrayBuffer

javascript - 宽度为 : 100%; 时流体图像重叠 div

jquery - 将段落值附加到文本区域

javascript - 检查 ascii 纯文本

java - 从 Java 调用网页上的 Javascript

javascript - 在复选框中选中的 Jquery DOM 设置适用于 true 而不是 false

javascript - 渲染器优于原生元素方法?

javascript - CSS 线性渐变未在 Chrome、Safari 中显示

javascript - 在链接上返回 false 单击 jquery