Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从单击的列表元素定义变量的Javascript';身份证_Javascript_Variables - Fatal编程技术网

用于从单击的列表元素定义变量的Javascript';身份证

用于从单击的列表元素定义变量的Javascript';身份证,javascript,variables,Javascript,Variables,我想定义一个变量: var alumniName = // id from a list ( example: <li id="JoeJohnson">Joe Johnson</li> ). var alumniName=//列表中的id(例如:Joe Johnson)。 我希望变量与访问者单击的内容相匹配。 (例如: <li id="JoeJohnson">Joe Johnson</li> // when a visitor clicks

我想定义一个变量:

var alumniName = // id from a list ( example: <li id="JoeJohnson">Joe Johnson</li> ).
var alumniName=//列表中的id(例如:
  • Joe Johnson
  • )。
    我希望变量与访问者单击的内容相匹配。 (例如:

    <li id="JoeJohnson">Joe Johnson</li>  
    // when a visitor clicks on the name Joe Johnson... the variable = JoeJohnson
    
    <li id="FredSmith">Fred Smith</li>
    // when a visitor clicks on the name Fred Smith... the variable = FredSmith
    
    乔·约翰逊 //当访问者点击乔·约翰逊这个名字时,变量=乔·约翰逊 弗雷德·史密斯 //当访问者点击Fred Smith这个名字时,变量=Fred Smith 等等……)

    非常感谢您的帮助-谢谢-

    试试这个 HTML:

    • 乔·约翰逊
    • Fred Smith
    JavaScript(在主体加载时调用):

    var-alumniName='';
    var liElems=document.getElementsByTagName('li');
    对于(var i=0;i试试这个
    HTML:

    • 乔·约翰逊
    • Fred Smith
    JavaScript(在主体加载时调用):

    var-alumniName='';
    var liElems=document.getElementsByTagName('li');
    
    对于(var i=0;i,您只能在单击发生时将变量设置为与单击相关的内容。使用:


    只能在单击发生时将变量设置为与单击相关的内容。请使用:


    我们必须对你的设置做一些假设…但是在这里取一个峰值,看看这是否有意义。不需要库

    HTML

    <ul id="myList">
    <li data-name='Joe Johnson'>Joe Johnson</li>
    <li data-name='Fred Smith'>Fred Smith</li>
    </ul>
    

    我们必须对你的设置做一些假设…但是在这里取一个峰值,看看这是否有意义。不需要库

    HTML

    <ul id="myList">
    <li data-name='Joe Johnson'>Joe Johnson</li>
    <li data-name='Fred Smith'>Fred Smith</li>
    </ul>
    

    你使用JavaScript库吗?(顺便说一句,你的问题是超基本的。你可能应该先读一本关于JavaScript事件处理的教程。)你使用JavaScript库吗?(顺便说一句,你的问题是超基本的。你可能应该先读一本关于JavaScript事件处理的教程。)如果您阅读Bergi的vs mine-您会注意到事件侦听器的使用…事件侦听器所做的是允许您向同一事件添加多个侦听器。如果您重写了事件
    。onclick=function
    ,那么您已经在所述元素/事件上重写了所有侦听器。您忘记了一个.getElementsByTagName(“li”)在某个地方,不是吗?妈的,是的,我纠正了。纠正了(尽管这不是最好的纠正方法:P)如果您阅读Bergi的vs mine-您会注意到事件侦听器的使用…事件侦听器所做的是允许您向同一事件添加多个侦听器。如果您重写了事件
    。onclick=function
    ,那么您已经在所述元素/事件上重写了所有侦听器。您忘记了一个.getElementsByTagName(“li”)在某个地方,不是吗?妈的,是的,我做了。更正(虽然不是最好的更正方法:P)这将在IE中失败…我很确定Opera??document.body不是交叉兼容的(仅供参考,否则回答不错)在你误解我之前:我并不是说你应该提供交叉兼容版本。OP可以做一些工作…但是提到他需要研究它总是很好的。为什么,IE不知道?Opera当然知道…哈哈,好吧,我只是疯了。现在我知道IE8<不认识addEventListener…但就像我说的。仅供参考-我想现在每个人都知道你在做什么。这将在IE中失败。我很确定Opera??document.body不是交叉兼容的(仅供OP参考,否则答案不错)在你误解我之前:我并不是说你应该提供交叉兼容版本。OP可以做一些工作…但是提到他需要研究它总是很好的。为什么,IE不知道?Opera当然知道…哈哈,好吧,我只是疯了。现在我知道IE8<不认识addEventListener…但就像我说的。仅供参考-我想现在每个人都知道你在做什么。另一个问题与此相关-我如何将此信息传递给另一个网页上的表单?-第一个网页获取名称,然后将其传递给保存表单的第二个网页。选项:1.你可以将值从第一个网页发布到另一个网页。2.假设另一个网页ebpage在同一个域中,如果另一个页面在新窗口中打开,那么您可以使用opener.alumniName或opener.someVar.3从第一个页面访问变量。如果发送到下一个页面的值很短,那么您甚至可以将它们作为查询字符串附加到下一个页面的url中。4.您甚至可以在一个页面上有两个表单,您好默认情况下,对第二个表单进行反求并在第一个表单完成后显示。您可以轻松地在第二个表单中填充值,因为它位于同一页面:)另一个相关问题-如何将此信息传递给另一个网页上的表单?-第一个网页获取名称,然后将其传递给保存表单的第二个网页。选项:1.您可以将值从第一个网页发布到另一个网页。2.假设另一个网页位于同一域,如果另一个网页在中打开一个新窗口,然后您可以使用opener.alumniName或opener.someVar从第一页访问变量。3.如果发送到下一页的值较短,则您甚至可以将它们作为查询字符串附加到下一页的url中。4.您甚至可以在一页上有两个表单,默认情况下隐藏第二个表单,并在第一个页面后显示表单已完成。您可以轻松填充第二个表单中的值,因为它位于同一页:)
    var recentClickedId = null; // init, nothing clicked on now
    // let this happen onload, i.e. when the DOM is available:
    document.body.addEventListener("click", function(event){
        var el = event.target;
        if (el.nodeName.toLowerCase() == "li")
             recentClickedId = el.getAttribute("id");
    }, false);
    
    <ul id="myList">
    <li data-name='Joe Johnson'>Joe Johnson</li>
    <li data-name='Fred Smith'>Fred Smith</li>
    </ul>
    
    var list = document.getElementById('myList'),
        alumniName;
    
    Array.prototype.forEach.call(list.getElementsByTagName('li'), function(item) {
        item.onclick = function() {
            alumniName = this.getAttribute('data-name');
            // or if you feel you still want to use ID's to store the values (spaces are not allowed) you can just ref this.id
        };
    });