GVKun编程网logo

javascript – 将数组附加到无序列表(js数组添加元素到数组尾部)

14

最近很多小伙伴都在问javascript–将数组附加到无序列表和js数组添加元素到数组尾部这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展javascript–Java8JSNas

最近很多小伙伴都在问javascript – 将数组附加到无序列表js数组添加元素到数组尾部这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展javascript – Java8 JS Nashorn将数组转换为Java数组、javascript – Jquery – 将数组值分配给下拉列表、javascript – jQuery如何将多个img srcs附加到数组中、javascript – 为什么我添加到无序列表中的val在添加后立即消失?等相关知识,下面开始了哦!

本文目录一览:

javascript – 将数组附加到无序列表(js数组添加元素到数组尾部)

javascript – 将数组附加到无序列表(js数组添加元素到数组尾部)

我想用这段代码完成的是将数组字母表作为一系列列表项输出到实际标记中的现有无序列表中.我已将数组放入列表项,但我无法弄清楚如何告诉它将自己附加到现有的无序列表< ul id =“itemList”>< / ul>.

var itemsExist = true;
var indexnum = 0;
var unorderedList = document.getElementById('itemList');
var alphabet= new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

function write_letters(){

    for (i = 0; i < alphabet.length; i++ ) {
        document.write('<li>'  + alphabet[indexnum++] + '</li>');
    }

}

if (itemsExist){
    write_letters();
} else {
    document.write("error!");
}

解决方法

不要使用document.write来执行此操作.你应该这样做:

function write_letters(){
    var letters = "";

    for (var i = 0; i < alphabet.length; i++ ) {
        //Also I don't understand the purpose of the indexnum variable.
        //letters += "<li>"  + alphabet[indexnum++] + "</li>";
        letters += "<li>"  + alphabet[i] + "</li>";
    }

    document.getElementById("itemList").innerHTML = letters;
}

更合适的方法是使用DOM(如果你想完全控制正在发生的事情):

function write_letters(){
    var items = document.getElementById("itemList");

    for (var i = 0; i < alphabet.length; i++ ) {
        var item = document.createElement("li");
        item.innerHTML = alphabet[i];
        items.appendChild(item);
    }

}

javascript – Java8 JS Nashorn将数组转换为Java数组

javascript – Java8 JS Nashorn将数组转换为Java数组

如何将JS数组转换为本地数组?
在Rhino转换看起来像( Scala代码):
val eng = (new javax.script.ScriptEngineManager).getEngineByName("JavaScript")
val obj = eng.eval("[1,2,3,4]")
val arr = obj.asInstanceOf[sun.org.mozilla.javascript.internal.NativeArray]

在Nashorn NativeArray中没有,我找不到有关转换的任何文档.

解决方法

从Java(和Scala),您还可以在jdk.nashorn.api.scripting.ScriptUtils类上调用convert方法.例如.来自Java:
import jdk.nashorn.api.scripting.ScriptUtils;
...
int[] iarr = (int[])ScriptUtils.convert(arr,int[].class)

我的Scala不太流利,但我相信是等同的:

val iarr = ScriptUtils.convert(arr,Array[Int]).asInstanceOf(Array[Int])

javascript – Jquery – 将数组值分配给下拉列表

javascript – Jquery – 将数组值分配给下拉列表

我有一个动态附加在页面和同一页面上的下拉列表,有一个数组被发布,因此,数组的长度将始终等于附加的下拉数.例如:

<select name="cavie"><option value=""></option><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option></select>

<select name="cavie"><option value=""></option><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option></select>

<select name="cavie"><option value=""></option><option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option></select>

和一个javascript数组:

var vals = ["4", "8", "12"];

目的是将数组值按顺序分配给下拉列表.

目前,我正在使用for循环,但这会将所有选项设置为最后一个数组的值:

var vals = ["4", "8", "12"];

for(var i in vals)
{
    $('.optimum').val(vals[i]); 
}

以上是这个小提琴:

https://jsfiddle.net/epzjdswn/2/

那怎么能实现呢?

解决方法:

您还必须根据索引选择元素,否则在每次迭代时设置集合中第一个项的值.

您可以使用eq()执行此操作,并且可以使用jQuery的$.each替换for循环

var vals = ["4", "8", "12"];

$.each(vals, function(i, val) {
    $('.optimum').eq(i).val(val);
});

FIDDLE

也可以选择以相反的方式进行,并迭代元素(使用一点ES2015获得戏剧效果)

var vals = ["4", "8", "12"];
$('.optimum').val(i => vals[i]);

FIDDLE

javascript – jQuery如何将多个img srcs附加到数组中

javascript – jQuery如何将多个img srcs附加到数组中

我的jQuery / JS已设置好,因此在doc加载时它会查找所有img srcs并将它们推送到一个数组中:

var sliderImg = [];
sliderImg.push($('.thumbnail').children('img').attr('src'));

然后我有代码在点击事件上提醒数组:

$('.thumbnail').each(function() {
$(this).click(function() {
    alert(sliderImg);
});
});

但是,它只添加了第一个img src路径,是否可以添加所有这些路径?

谢谢!

解决方法:

你可以使用每个;

$('.thumbnail').children('img').each(function() {
  sliderImg.push($(this).attr('src');
});

javascript – 为什么我添加到无序列表中的val在添加后立即消失?

javascript – 为什么我添加到无序列表中的val在添加后立即消失?

我有一个“文本框”的内容,我想发送到一个无序的列表,当用户砸“Enter”键:

HTML

<input type="text" name="InputUPC" id="InputUPC" />
<ul id="CandidateUPCs" name="CandidateUPCs"></ul>

CSS

.ulUPCs {
    min-height:160px;
    height:auto !important;
    height:160px;
    max-width:344px;
    width:auto !important;
    width:344px;
    border-style:solid;
    border-width:2px;
}

jQuery的

$('#InputUPC').keypress(function (event) {
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
        var upcPrefix = jQuery.trim($("#InputUPC").val());

        if (upcPrefix != "") {
              $("#CandidateUPCs").append('<li>' + upcPrefix + '</li>');
        }
        $("#InputUPC").val("");
    }
});

当我输入“InputUPC”并将其键入时,该值将显示在无序列表中,但仅对于“简短的第二个”则会消失. “InputUPC”中的值也会消失,但是正如预期的那样.为什么它也会腾出UL的前兆?

UPDATE

这是我结束的(http://jsfiddle.net/AEy9x/),主要是基于adeneo的答案:

$('#InputUPC').keyup(function (event) {
    event.preventDefault();
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
        var upcPrefix = jQuery.trim($("#InputUPC").val());

        if (upcPrefix != "") {
              $("#CandidateUPCs").append('<label for=' + upcPrefix + '>' + upcPrefix + ' </label>');
              $("#CandidateUPCs").append('<input type=\"checkBox\" name=' + upcPrefix + ' id=' + upcPrefix + ' />');
              $("#CandidateUPCs").append('<br>');
        }
        $("#InputUPC").val("");
    }
});

更新2

在jsfiddle中,只要jquery版本高于1.6.4就可以工作.

在这种情况下,我将我的项目更新为jquery 1.9.1(在一个地方引用了1.4.4版本,在所有其他地方引用了1.6.2版本).但是,它还是不行吗?

我看到UL中的val是一个“闪光灯”,但是它再次消失了.

注意:我还更新了jquery-ui:

@*    <script src="@Url.Content("~/Scripts/jquery-ui-1.8.16.custom.min.js")" type="text/javascript"> </script>*@
    <script src="@Url.Content("http://code.jquery.com/ui/1.10.3/jquery-ui.js")" type="text/javascript"> </script>

更新3

@sriniris:

同样的事情发生在任何一个代码块(我的是第一个; adeneo是第二个),即UL被填充了一个纳秒,然后飞行的位置比润滑和抛光的闪电更快:

$('#InputUPC').keyup(function (event) {
    event.preventDefault();
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if (keycode == '13') {
        var upcPrefix = jQuery.trim($("#InputUPC").val());

        if (upcPrefix != "") {
              $("#CandidateUPCs").append('<label for=' + upcPrefix + '>' + upcPrefix + ' </label>');
              $("#CandidateUPCs").append('<input type=\"checkBox\" name=' + upcPrefix + ' id=' + upcPrefix + ' />');
              $("#CandidateUPCs").append('<br>');
        }
        $("#InputUPC").val("");
    }
});



$('#InputUPC').on('keyup',function(e) {
e.preventDefault();
if (e.which == 13) {
    var upcPrefix = $.trim( this.value );

    if (upcPrefix != "") {
          var upcElem = $('<li />',{text : upcPrefix});
          $("#CandidateUPCs").append(upcElem);
    }
    this.value = "";
}

更新4

问题是表单正在提交,即使有代码来防止(preventDefault).我知道这一点,因为当我选择一个复选框时,它们都被选中,同时短暂地输入UL的值也是再见的.那么对这个“隐喻”的混合体有什么分析:

e.preventDefault(); ! important

更新5

我仍然有同样的问题:

$('#InputUPC').keyup(function (event) {
    if (event.stopPropagation) { // W3C/addEventListener()
        event.stopPropagation();
    } else { // Older IE.
        event.cancelBubble = true;
}
         event.preventDefault();
        var keycode = (event.keyCode ? event.keyCode : event.which);
        if (keycode == '13') {
            //alert('get the values that start with what was entered and place it in ulUPCStartsWith');
            var upcPrefix = jQuery.trim($("#InputUPC").val());

            if (upcPrefix != "") {
                  $("#CandidateUPCs").append('<label for=' + upcPrefix + '>' + upcPrefix + ' </label>');
                  $("#CandidateUPCs").append('<input type=\"checkBox\" name=' + upcPrefix + ' id=' + upcPrefix + ' />');
                  $("#CandidateUPCs").append('<br>');
            }
            $("#InputUPC").val("");
        }
    });

解决方法

$('#InputUPC').on('keyup',function(e) {
    e.preventDefault();
    if (e.which == 13) {
        var upcPrefix = $.trim( this.value );

        if (upcPrefix != "") {
              var upcElem = $('<li />',{text : upcPrefix});
              $("#CandidateUPCs").append(upcElem);
        }
        this.value = "";
    }
});

今天关于javascript – 将数组附加到无序列表js数组添加元素到数组尾部的分享就到这里,希望大家有所收获,若想了解更多关于javascript – Java8 JS Nashorn将数组转换为Java数组、javascript – Jquery – 将数组值分配给下拉列表、javascript – jQuery如何将多个img srcs附加到数组中、javascript – 为什么我添加到无序列表中的val在添加后立即消失?等相关知识,可以在本站进行查询。

本文标签: