关于nodeValue以及其与value的区别

 

nodeValue就是用来得到“文本元素的值”的,即只适用于“文本节点”;

例子:

<html>

<head>
<script type="text/javascript">
function getNodeValue()
{
var nv=document.getElementById("td1").firstChild.nodeValue;
var nn=document.getElementById("tr1").firstChild.nodeName;
var nv1=document.getElementById("tr1").firstChild.nodeValue;
alert("nv="+nv);
alert("nn="+nn);
alert("nv1="+nv1);
}
</script>

</head>

<body>
<table>
  <tr id="tr1">
    <td id="td1" >John</td>
    <td>Doe</td>
    <td>Alaska</td>
  </tr>
</table>
<input type="button" value="button1"  onclick="getNodeValue()"/>
</body>

</html>

 

以上得到的结果:

nv=John;

nn=td;

nv1=null;

要分清元素的value属性和nodeValue 不一样,nodeValue适用于“文本节点”和“属性节点”;对应“文档节点”和“标签节点”不起作用

这是一个单选的选择器 帮我改为多选 提供完整代码 <template> <view class="w-picker-view"> <picker-view class="d-picker-view" :indicator-style="itemHeight" :value="pickVal" @change="handlerChange"> <picker-view-column> <view class="w-picker-item" v-for="(item,index) in range" :key="index">{{item[nodeKey]}}</view> </picker-view-column> </picker-view> </view> </template> <script> export default { props:{ itemHeight:{ type:String, default:"44px" }, options:{ type:[Array,Object], default(){ return [] } }, value:{ type:String, default:"" }, defaultType:{ type:String, default:"label" }, defaultProps:{ type:Object, default(){ return{ label:"label", value:"value" } } } }, data() { return { pickVal:[] }; }, computed:{ nodeKey(){ return this.defaultProps.label; }, nodeValue(){ return this.defaultProps.value; }, range(){ return this.options } }, watch:{ value(val){ if(this.options.length!=0){ this.initData(); } }, options(val){ this.initData(); } }, created() { if(this.options.length!=0){ this.initData(); } }, methods:{ initData(){ let dVal=this.value||""; let data=this.range; let pickVal=[0]; let cur=null; let label=""; let value,idx; if(this.defaultType==this.nodeValue){ value=data.find((v)=>v[this.nodeValue]==dVal); idx=data.findIndex((v)=>v[this.nodeValue]==dVal); }else{ value=data.find((v)=>v[this.nodeKey]==dVal); idx=data.findIndex((v)=>v[this.nodeKey]==dVal); } pickVal=[idx!=-1?idx:0]; this.$nextTick(()=>{ this.pickVal=pickVal; }); if(this.defaultType==this.nodeValue){ this.$emit("change",{ result:value?value[this.nodeKey]:data[0][this.nodeKey], value:dVal||data[0][this.nodeKey], obj:value?value:data[0] }) }else{ this.$emit("change",{ result:dVal||data[0][this.nodeKey], value:value?value[this.nodeValue]:data[0][this.nodeValue], obj:value?value:data[0] }) } }, handlerChange(e){ let arr=[...e.detail.value]; let pickVal=[arr[0]||0]; let data=this.range; let cur=data[arr[0]]; let label=""; let value=""; this.$nextTick(()=>{ this.pickVal=pickVal; }); this.$emit("change",{ result:cur[this.nodeKey], value:cur[this.nodeValue], obj:cur }) } } } </script> <style lang="scss"> @import "./w-picker.css"; </style>
08-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值