Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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_Html - Fatal编程技术网

Javascript 如何计算无序列表中的项目数量。JQuery

Javascript 如何计算无序列表中的项目数量。JQuery,javascript,jquery,html,Javascript,Jquery,Html,我是StackOverflow社区的新手! 我一直在寻找这个话题,其中一些人说我知道我在寻找什么,但我无法实现 我对JQuery和JS也是新手,如果我的代码中有任何地方乱七八糟,我道歉 我的代码: $('#btnComments').click(function () { if ($('#commentArea').val() != "") { var $newli = document.createElement('li'); $newli.textCo

我是StackOverflow社区的新手! 我一直在寻找这个话题,其中一些人说我知道我在寻找什么,但我无法实现

我对JQuery和JS也是新手,如果我的代码中有任何地方乱七八糟,我道歉

我的代码:

$('#btnComments').click(function () {
    if ($('#commentArea').val() != "") {
        var $newli = document.createElement('li');
        $newli.textContent = $('#commentArea').val();
        $('#listaDeComentarios').after($newli);
        $('#commentArea').val('');
        var cantLiEnUl = $('#listaDeComentarios').length;
        $newli.tagName = 'Comments[' + cantLiEnUl.toString() + ']';
    }
});
在我代码的第一部分,我只是从一个文本区域获取文本,并将其添加到注释列表中。我试图做的是为li的名称设置适当的索引,因为我用一个模型发布该列表,如果我不给每个li一个索引,那么模型中的这个属性将以null值到达

我一直在做一些console.log(cantLiEnUl)来了解这个值是如何改变的,它没有改变,它总是1#listaDeComentarios是我的ul的id

如果有什么不清楚的地方,我会尽量解释清楚

提前谢谢

我读了关于@Turnip的评论后发现

我之所以发布它,是因为他回复了一条评论,无法将其标记为解决方案。我的问题是。之后

您应该使用.append而不是.after,否则长度将始终为零。实际上,你并没有把li添加到ul中。此外,您不能给标记名赋值-这是元素的“类型”。在您的例子中,$newli.tagName等于'LI'


谢谢

我将做一个大胆的猜测,并假设您正在尝试这样做:

$('btnComments')。单击(函数(){
if($('#commentArea').val()!=“”){
var$newli=document.createElement('li');
$newli.textContent=$('#commentArea').val();
/**
*使用“.append`not`”。在“。。。
*/
$('listaDeComentarios')。追加($newli);
$('#commentArea').val('');
/**
*检查'li'的长度而不是'ul'。。。
*/
var cantLiEnUl=$('listaDeComentarios li')。长度;
/**
*将“data myData”替换为要设置的任何属性。。。
*/
$($newli.attr('data-myData','Comments['+cantLiEnUl.toString()+']);
}
});
#listaDeComentarios li:之后{
内容:'-'属性(数据myData);
颜色:红色;
}


点击

这个问题与
C
有什么关系?使用
length
属性,例如
$('ul li')。length
。如果这对您不起作用,我们需要更多地查看您的代码。一个工作示例会很好,或者一个HTML示例至少应该使用
.append
而不是
。在
之后,长度将始终为零。实际上,您没有将
li
添加到
ul
。此外,您不能将值赋给
标记名
——这是元素的“类型”。在你的例子中,
$newli.tagName
等于'LI'。Jules我用ASP.NET MVC 5来做这件事。如果它不合适,我可以移除它。我apologize@Turnip我的问题都是关于…之后!非常感谢。我用你的回复编辑了这篇文章,因为我无法将你的评论标记为正确的回复!对这正是我想做的。非常感谢。