首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >调用if…然后在d3节点上运行

调用if…然后在d3节点上运行
EN

Stack Overflow用户
提问于 2015-11-13 17:09:34
回答 2查看 39关注 0票数 1

我试图在d3中调用一个条件函数,但在运行此代码时遇到了问题。

我的d3代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//create a div element within #container for each object
day = d3.select("#container").selectAll("div")
    .data(data)
    .enter()
        .append("div");

根据对象的date属性,我想添加一个具有不同文本的p元素:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//get today's date
var today = new Date();

//if after today
if (Date.parse(d.date) > today) {

    //print 'after today!'
    day.append('p').text(function(d) { return "after today!" });

//otherwise
} else {

    //print 'today or before'
    day.append('p').text(function(d) { return "today or before!" });
};

有没有人能帮我把这个弄好?

EN

回答 2

Stack Overflow用户

发布于 2015-11-13 17:46:11

你没有提到d.date是什么格式的。如果已经是约会了,就这么做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
day
 .append('p')
 .text(function(d) { 
   return (d.date.getTime() > Date.now()) ? "after today!" : "before today!";
 });

如果不是日期,则转换为日期,然后调用getTime()

编辑

对于您在注释中描述的情况,请使用.each

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,0,1];
      
var div = d3.select('body')
  .selectAll('div')
  .data(data)
  .enter()
  .append('div')
  .each(function(d){
    var self = d3.select(this);
    if (d === 1){
      self.append('p')
        .text('Hi Mom!')
    } else {
      self.append('img')
        .attr('src','https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png')
    }
});
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

票数 1
EN

Stack Overflow用户

发布于 2015-11-13 17:21:20

附带的是一把小提琴:http://jsfiddle.net/nkqL4c26/7/

JS:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//sample data:
var data = [
    {'date': "Sat Nov 15 2015 08:09:49 GMT+0530"},
    {'date': "Sat Nov 14 2015 08:09:49 GMT+0530"},
    {'date': "Sat Nov 13 2015 08:09:49 GMT+0530"},
    {'date': "Sat Nov 12 2015 08:09:49 GMT+0530"},
    {'date': "Sat Nov 11 2015 08:09:49 GMT+0530"}
];

d3.select("#container")
    .data(data, function(d, i ) { return d +i;})
    .enter()
    .append('p')
    .text(function(d) {
        var self = d3.select(this);
        return (Date.parse(d.date) > Date.now()) ? 
                " after today!"
                :" today or before!";
    }); 

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="container">  </div>  

由@sergio进行的编辑

我在这里实际上想做的是,如果日期早于今天的日期,则在a标记中附加一个img标记,如果日期在今天的日期之后,则只附加img标记(不带链接)。我认为这就是我正在寻找的行为,但我不确定我的语法是否正确:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
day.append(function(d) {
    return (Date.parse(d.date) > Date.now()) ? 
        ('img').attr('src', 'img/inactive.png') : 
        ('a').attr('href', d.url)
            .append('img').attr('src', 'img/active.png');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33698196

复制
相关文章
在Windows上运行单节点的Cassandra
Cassandra可以安裝在很多系统上, 我是安装在windows server 2008 R2上,安装相当简单,只要把下载下来的压缩包解压缩放到一个目录下就可以了,这里主要是记录下使用体验: Cassandra官网: http://cassandra.apache.org/,下载页面 http://cassandra.apache.org/download/ Cassandra用java开发的,要求安装JVM 1.6以上,推荐 Version 6 Update 23  到Java官网下载 http://w
张善友
2018/01/19
2.4K0
在Windows上运行单节点的Cassandra
在QEMU上运行OPTEE
TEE越来越成为一种基础的安全技术,optee作为一种优秀的开源TEE OS正吸引了越来越多的厂商,越来越多的学习者,安智客之前也多次介绍过
安智客
2018/07/30
2.6K0
在QEMU上运行OPTEE
在 Windows 上搭建配置 Jenkins 然后编译打包 VS 项目
Jenkins 安装完成后,使用 IP 端口,在浏览器中可打开使用 Jenkins,如 http://192.168.70.150:8080/manage
独立观察员
2022/12/06
1.7K0
在 Windows 上搭建配置 Jenkins 然后编译打包 VS 项目
在kubernetes上运行WASM负载
WASM一般用在前端业务中,但目前有扩展到后端服务的趋势。本文使用Krustlet 将WASM服务部署到kubernetes。
charlieroro
2021/05/10
1.5K0
在kubernetes上运行WASM负载
在OS X上运行Docker
本文介绍了如何在OS X上运行Docker,通过使用boot2docker和VirtualBox,使基于Linux的Docker能在OS X上正常运行。同时,还探讨了如何将现有的基于Linux的Docker容器迁移到基于macOS的Docker。
Techeek
2018/01/04
1.9K0
在OS X上运行Docker
在Android系统上运行frp
一时兴起,想在Android上跑一下frpc,本来以为需要在PC上交叉编译后放到机器上才行,后来发现好像更简单,Android YYDS!
老高的技术博客
2022/12/28
4.3K0
在Android系统上运行frp
在Hadoop上运行Python脚本
之前已经配置好了Hadoop以及Yarn,可那只是第一步。下面还要在上面运行各种程序,这才是最重要的。
py3study
2020/01/06
4.2K0
在Docker上运行Django和Vue
在Docker上运行Django和Vue Run Django and Vue on Docker Django Dockerfile 生成django项目依赖包. Generate Django project dependencies. pip freeze > requirements.txt 编写django启动脚本 run.sh Write a Django startup script run.sh python3 manage.py runserver 0.0.0.0:8000 编写 D
葫芦
2021/09/08
1.4K0
在Docker上运行Django和Vue
Spacebuilder在Mono上运行修改备忘
Spacebuilder 是一个asp.net mvc3项目,使用到了Combres,Combres依赖于dotless,然后在Spacebuilder的项目没有见到的dotless,运行要求dotless 1.3.0.2版本,通过Nuget获取: Install-Package dotless -Version 1.3.0.2 修改web.config加入dotless配置: <configuration>   <configSections>     <section name="combr
张善友
2018/01/29
1.2K0
Spacebuilder在Mono上运行修改备忘
在gpu上运行Pandas和sklearn
当涉及大量数据时,Pandas 可以有效地处理数据。但是它使用CPU 进行计算操作。该过程可以通过并行处理加快,但处理大量数据仍然效率不高。
deephub
2022/11/11
1.6K0
在gpu上运行Pandas和sklearn
在 FPGA 上运行 eBPF XDP 应用
这篇文章是对 OSDI20 的 Best Paper hXDP: Efficient Software Packet Processing on FPGA NICs 的阅读笔记,感兴趣的同学可以点击阅读原文查看论文的 paper,slide 和 video。
Oilbeater
2021/10/20
1.3K0
在Windows上使用Docker运行.NetCore
今天我们来说下如何在windows下使用docker运行.net core,既然是docker,那么我们首先得在windows上安装docker。
小世界的野孩子
2019/09/11
4.3K0
在Windows上使用Docker运行.NetCore
在 Linux or windows 上后台运行服务
  此时可以访问 http://ip:8000 验证服务是否成功启动了(详细操作见另一篇文章-Python 一行搭建文件服务器)
我是胖虎啊
2022/06/27
3.3K0
在 Linux or windows 上后台运行服务
在Windows上如何后台运行JuiceFS
JuiceFS的Badger引擎改造完成以后,需要在Windows下面进行后台运行。因为现有的JuiceFS中还没有在Windows下的后台运行实现,所以需要通过其他途径解决。
用户1260683
2022/03/30
2.9K0
在Windows上如何后台运行JuiceFS
在Ubuntu上启动并运行Hadoop
Hadoop是一个用Java编写的框架,它允许在大型商品硬件集群上以分布式方式处理大型数据集。
大数据弄潮儿
2018/05/29
4.6K0
在Ubuntu上启动并运行Hadoop
ParallelX在GPU上运行Hadoop任务
在面对大规模计算密集型算法时,MapReduce范式的表现并不总是很理想。为了解决其瓶颈,一支小型创业团队构建了名为ParallelX的产品——它将通过利用GPU的运算能力,为Hadoop任务带来显著的提升。 ParallelX的联合创始人Tony Diepenbrock表示,这是一个“GPU编译器,它能够把用户使用Java编写的代码转化为OpenCL,并在亚马逊AWS GPU云上运行”。它的最终产品是一项与亚马逊Elastic MapReduce类似的服务,只不过不同之处在于它将利用EC2 GPU实例类型
GPUS Lady
2018/03/30
1.2K0
LWN: 在 Linux 上运行 macOS 程序
目前有个名叫Darling的项目活跃度不断提升,这个项目是希望能在Linux上提供一个针对macOS软件的translation layer(翻译层),有点类似Wine这个项目所做的工作。Darling比起Wine来说,成熟度差得尚远,因此开发者们现在仍在尽力能增加更多功能,使得此项目在今后的某一天能够对更多用户提供帮助。
用户6543014
2019/10/25
6.4K0
LWN: 在 Linux 上运行 macOS 程序
爬虫写完了,运行了,然后呢?
看到这个问题,我首先想到的是R和python。基础的爬虫无非是:构建URL、根据页面结构解析爬取关键信息、整理数据格式输出结果。
生信技能树
2018/12/11
1.1K0
在 Docker 上建立多节点的 Hadoop 集群
在上篇文章中你已经看到了在你的devbox创建一个单点Hadoop 集群是多么简单。
星哥玩云
2022/07/01
1.1K0
点击加载更多

相似问题

在节点值上运行PHP函数,然后输出XML?

12

d3中树节点上的调用操作符

12

使用d3树状图向上转到子节点,然后单击父节点至子节点

11

节点上的D3元数据

13

在很多D3力模拟节点上添加阴影?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文