selection.text

本文介绍在d3.js中如何正确获取不同类型的HTML元素的文本内容或值,特别是对于<input>标签的方法,并对比了d3.js与原生JavaScript之间的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

d3.js
selection.text
可以获得标签的内容,这个方法等同于js的原生方法
selection.node().innerHTML

但是对于<input>标签,selection.text并不起作用,所以这个时候要使用js的原生方法,
selection.node().value

通过实验可知对于<input>标签,如果使用selection.attr('value')方法,获得是属性里的value值,而不是输入的值

同样的,对于属性的修改也是。
d3.js的selection.attr()等方法其实就是对原生的js重写。如果有没有重写到位的地方,我们可以通过selection.node()方法获得标签,用js的原生方法来改写。

参考文献:
https://www.cnblogs.com/laijinquan/p/6718944.html
http://www.runoob.com/jsref/dom-obj-all.html

<input>标签的:

document.getElementById("id").value ;

其他文本标签的:
document.getElementById("miao").innerHTML;

修改的也同上,在后面加上"="就可以了
VB访问word书签。 '实现代码如下 Dim cn As New ADODB.Connection Dim AdoRs As New ADODB.Recordset Dim WordTemps As New Word.Application Private Sub Form_Load() If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" End Sub '开始导出数据 Private Sub Command1_Click() Dim strSQl As String Dim REC As Integer Dim i As Integer WordTemps.Documents.Add App.Path + "\货物合同.doc", False WordTemps.Selection.GoTo wdGoToBookmark, , , "合同标题" WordTemps.Selection.TypeText "关于冬季货物的成交合同" WordTemps.Selection.GoTo wdGoToBookmark, , , "合同编号" WordTemps.Selection.TypeText "2004000001" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约单位" WordTemps.Selection.TypeText "宏大科技公司,天天科技公司" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约地址" WordTemps.Selection.TypeText "北京中关村大厦" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约时间" WordTemps.Selection.TypeText fromat(Now, "yyyy-mm-dd") strSQl = "select * from Matrixs" AdoRs.Open strSQl, cn, adOpenKeyset, adLockOptimistic REC = AdoRs.RecordCount If REC < 1 Then MsgBox "无商品记录!", vbOKOnly, "提示" AdoRs.Close Exit Sub Else AdoRs.MoveFirst WordTemps.Selection.GoTo wdGoToBookmark, , , "货物清单" For i = 1 To REC WordTemps.Selection.TypeText AdoRs!名称 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!数量 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!规格 AdoRs.MoveNext If AdoRs.EOF = False Then WordTemps.Selection.InsertRowsBelow 1 '表格换行 End If Next i AdoRs.Close WordTemps.Visible = True '显示WORD窗口 End If End Sub '实现代码如下 Dim cn As New ADODB.Connection Dim AdoRs As New ADODB.Recordset Dim WordTemps As New Word.Application Private Sub Form_Load() If cn.State = 1 Then cn.Close End If cn.CursorLocation = adUseClient cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" End Sub '开始导出数据 Private Sub Command1_Click() Dim strSQl As String Dim REC As Integer Dim i As Integer WordTemps.Documents.Add App.Path + "\货物合同.doc", False WordTemps.Selection.GoTo wdGoToBookmark, , , "合同标题" WordTemps.Selection.TypeText "关于冬季货物的成交合同" WordTemps.Selection.GoTo wdGoToBookmark, , , "合同编号" WordTemps.Selection.TypeText "2004000001" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约单位" WordTemps.Selection.TypeText "宏大科技公司,天天科技公司" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约地址" WordTemps.Selection.TypeText "北京中关村大厦" WordTemps.Selection.GoTo wdGoToBookmark, , , "签约时间" WordTemps.Selection.TypeText fromat(Now, "yyyy-mm-dd") strSQl = "select * from Matrixs" AdoRs.Open strSQl, cn, adOpenKeyset, adLockOptimistic REC = AdoRs.RecordCount If REC < 1 Then MsgBox "无商品记录!", vbOKOnly, "提示" AdoRs.Close Exit Sub Else AdoRs.MoveFirst WordTemps.Selection.GoTo wdGoToBookmark, , , "货物清单" For i = 1 To REC WordTemps.Selection.TypeText AdoRs!名称 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!数量 WordTemps.Selection.MoveRight unit:=wdCharacter, Count:=1 '右移一格 WordTemps.Selection.TypeText AdoRs!规格 AdoRs.MoveNext If AdoRs.EOF = False Then WordTemps.Selection.InsertRowsBelow 1 '表格换行 End If Next i AdoRs.Close WordTemps.Visible = True '显示WORD窗口 End If End Sub
<!-- src/components/SelectionPopup.vue --> <script setup> import { ref, onMounted, onBeforeUnmount } from 'vue'; const isMounted = ref(false); const scrollY = ref(0); const props = defineProps(['selection', 'actions']) const emit = defineEmits(['action']) const handleScroll = () => { if (!isMounted.value) return; scrollY.value = typeof window !== 'undefined' ? window.scrollY : 0; }; const handleClick = (action) => { emit('action', { action, text: props.selection.text }) } onMounted(() => { isMounted.value = true; if (typeof window !== 'undefined') { window.addEventListener('scroll', handleScroll); } }); onBeforeUnmount(() => { isMounted.value = false; if (typeof window !== 'undefined') { window.removeEventListener('scroll', handleScroll); } }); </script> <template> <div v-if="props.selection.text && props.selection.text.length>0" class="selection-popup" :style="{ left: `${selection.rect.left}px`, top: `${selection.rect.top + scrollY.value}px` }" > <button v-for="action in actions" :key="action.id" @click="handleClick(action.id)" > {{ action.label }} </button> </div> </template> <style scoped> .selection-popup { position: absolute; background: white; border: 1px solid #ddd; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); padding: 8px; z-index: 1000; } </style> 当滑动值时显示弹框 取消滑动 点击点击其他空白时 滑动显示的弹框值隐藏掉 不要一直显示 目前v-if="props.selection.text && props.selection.text.length>0"这个判断无效 没反应
最新发布
08-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值