javaScript时髦的cookie?

Ove*_*ked 1 javascript

当我尝试读取我设置的cookie时,似乎不对

这是我的cookie功能

function readCookie(){
if (document.cookie !=""){
    document.getElementsByName("eMail").innerHTML = alert("hello, " +    
document.cookie.split("=")[1]);
}
}

//for setting cookies
function writeCookie(cName, cValue, expDate, cPath, cDomain, cSecure){
if(cName && cValue!= ""){
var cString = cName + " = " + escape(cValue);

if (expDate) cString += ";expires=" + expDate,toGMString();
if (cPath) cString += ";path=" + cPath;
if (cDomain) cString += ";domain=" + cDomain;
if (cSecure) cString += ";secure";

document.cookie = cString;
}
}
Run Code Online (Sandbox Code Playgroud)

饼干被设置

 <input type="submit" value="Submit"     
onclick="writeCookie('userId',document.getElementsByName('eMail').value)"/>
Run Code Online (Sandbox Code Playgroud)

警报框

hello, undefined;__utma
Run Code Online (Sandbox Code Playgroud)

想到这意味着什么?

Ada*_*kis 5

警报功能返回 undefined

所以

 document.getElementsByName("eMail").innerHTML = alert("hello, " + 
       document.cookie.split("=")[1]);
Run Code Online (Sandbox Code Playgroud)

将html设置eMailundefined.

此外,getElementsByName返回元素集合.

你的意思是

document.getElementsByName("eMail")[0].innerHTML = "hello, " +    
       document.cookie.split("=")[1];
Run Code Online (Sandbox Code Playgroud)

或者有多个具有此名称的元素?

var eMailElements = document.getElementsByName("eMail");
for (var i = 0; i < eMailElements.length; i++)
    eMailElements[i].innerHTML = "hello, " + document.cookie.split("=")[1];
Run Code Online (Sandbox Code Playgroud)

最后,如果您只定位一个元素,则可以给它一个(唯一的)ID,然后就可以了

document.getElementById("eMailId").innerHTML = "hello, " +    
       document.cookie.split("=")[1];
Run Code Online (Sandbox Code Playgroud)