添加列表项if (m_bFirstLi)
{
m_cstrExternInfo += _T("<li class=\"extern-sel\" data-value=\"");
}
else
{
m_cstrExternInfo += _T("<li class=\"extern-notsel\" data-value=\"");
}
m_bFirstLi = FALSE;
m_cstrExternInfo += cstrMsg;
m_cstrExternInfo += _T("\"><a href=\"#\"><span>");
m_cstrExternInfo += cstrMsg;
m_cstrExternInfo += _T("</span></a></li>");
获取列表数据var strXML="";
    function showNode(dltable) {
        for(var i = 0; i < dltable.length; i++)
        {
    if (dltable[i].nodeType == 1) {
        if (dltable[i].nodeName == "dt" || dltable[i].nodeName == "DT") {
            strXML += "<pfield fname=\"";
            strXML += dltable[i].innerHTML;
            strXML += "\" ";
        }
        if (dltable[i].nodeName == "li" || dltable[i].nodeName == "LI") {
            if(dltable[i].className == "extern-sel"){
                strXML += "fvname=\"";
                strXML += dltable[i].dataset.value;
                strXML += "\" >";
                break;
            }
        }
        if (dltable[i].childNodes.length > 0) {
            showNode(dltable[i].childNodes);
        }
   }
       }
    }        var dltable = document.getElementById("infolist").childNodes;        showNode(dltable);
dataset.value这个取不到是什么原因?

解决方案 »

  1.   

    dataset是什么,某个节点的自定义属性?
      

  2.   

    我在网上找的解释
    关于data-value,这种命名方法是HTML5推荐的方式,用于定义要缓存的数据,data-*在新锐浏览器中会放到一个叫dataset的对象中。比如: 
    复制代码 代码如下: 
    <div id="司徒正美" 
    data-drink="coffee" 
    data-meal-time="12:00">12:00</div> 我们可以通过如下方式访问到它: 
    复制代码 代码如下: 
    var el= document.getElementById('司徒正美'); 
    alert( el.dataset.drink ); 
    alert( el.dataset.mealTime ); 
      

  3.   

    解决了,改用getAttribute("data-value")
      

  4.   

    真心不懂HTML5,刚大致了解了一下,dataset对象的兼容性是有问题的,至少可以确定万恶的IE是不支持的。
    写了个例子,Chrome、Safari、FF下都没有问题。不过,value是表单元素的固有属性名称,还是尽量避免使用吧。
    <div id="demo" data-value="test1" data-value2="test2"></div>
    <script type="text/javascript">
    alert(document.getElementById('demo').dataset.value);
    </script>可以通过.getAttribute()方法获取元素自定义属性的值。