Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 将值推送到jquery数组_Javascript_Jquery - Fatal编程技术网

Javascript 将值推送到jquery数组

Javascript 将值推送到jquery数组,javascript,jquery,Javascript,Jquery,简单地说,尝试将简单答案值推送到jquery数组 HTML <div class="answer-A"> <a href="#question2" value="A"> <p style="color: white;">THOMAS EDISON</p> </a> </div> <div class="answer-B"> <a href="#question2" v

简单地说,尝试将简单答案推送到jquery数组

HTML

<div class="answer-A">
    <a href="#question2" value="A">
        <p style="color: white;">THOMAS EDISON</p>
    </a>
</div>
<div class="answer-B">
    <a href="#question2" value="B">
        <p style="color: white;">ALBERT EINSTEIN</p>
    </a>
</div>
<div class="answer-C">
    <a href="#question2" value="C">
        <p style="color: white;">NELSON MANDELA</p>
    </a>
</div>

可能不应该使用value-可能有一种更简单的方法?

使用选择器,将div与以
answer
开头的类及其锚定子类相匹配

div[class^="answer-"] a
遍历这些元素并获取它们的value属性。像这样:

var finalAnswers = [''];

$(document).ready(function () {
     $('div[class^="answer-"] a').each(function(i,v){
            finalAnswers.push($(v).attr("value"));
     });
     console.log(finalAnswers);
});
拨弄


下面是一个示例,供您评论如何推送用户单击的值

var finalAnswers = [];

$(".answer-A, .answer-B, answer-C").click(function(){

    var value = $(this).children("a").attr("value");
    finalAnswers.push(value)
});

如果我正确理解了你的问题,我创建了这把小提琴来完成你的任务:

html:


你想达到什么目的?
$()
的结果没有一个名为
finalAnswers
的数组,只是因为你创建了一个名为
finalAnswers
的全局数组-javascript不是这样工作的,而jQuery“array”是一个javascript数组,没有distinction@erayner,NodeList not arrayBroken代码不能很好地替代完整和正确的解释…请参阅尝试实现一个数组,该数组中包含的值取决于用户单击的内容。结束数组应该是finalsAnswers=['A','B','A','A','C']这非常接近,但似乎不起作用:(如果我能帮你,我会:)不客气。。。如果你的问题解决了,你可以接受这个答案
var finalAnswers = [];

$(".answer-A, .answer-B, answer-C").click(function(){

    var value = $(this).children("a").attr("value");
    finalAnswers.push(value)
});
<div class="answer-A">
    <a href="#" data-value="A">
        <p style="color: white;">THOMAS EDISON</p>
    </a>
</div>
<div class="answer-B">
    <a href="#" data-value="B">
        <p style="color: white;">ALBERT EINSTEIN</p>
    </a>
</div>
<div class="answer-C">
    <a href="#" data-value="C">
        <p style="color: white;">NELSON MANDELA</p>
    </a>
</div>
var finalAnswers = [];

$(document).ready(function () {

     $("a[data-value]").on("click", function(e) {
        var value = $(this).attr('data-value');
        finalAnswers.push(value);
       alert("Answers so far: " + finalAnswers.join(","));
        e.preventDefault();
     });

});