猿问

如何获取使用cshtml中的循环创建的每个div / li / a的特定元素的ID

我正在从控制器传递模型,并使用for循环在div中填充模型元素。对于每个模型项目,都有一个具有不同属性的div。现在,我希望每当单击任何链接或元素中的任何一个时,都divs必须获取分配给它的特定值。


我遇到的问题是,它仅拾取在循环的第一次迭代中创建的一个div的值,而与我现在使用的div无关。


下面是与我现在正在打印的完全一样的简单列表,当我单击下面创建的任何链接时,我都希望该链接的值。


假设有15个类别,我想要第6个类别是“ java”,我如何使用jquery来获得该类别。


@foreach (var category in ViewBag.Categories)

{

     <li class="item"><a id="categoryItem" value = @category.categoryName>@category.categoryName</a></li>


}


江户川乱折腾
浏览 419回答 3
3回答

月关宝盒

id="categoryItem"问题出在这个ID分配上。如果这是您的实际代码,则只需为循环中的所有元素设置相同的ID“ categoryItem”。除了违反HTML标准外,如果您使用此ID寻址元素,这还会导致大多数浏览器选择第一个元素。要解决此问题,您可以将类别名称包含在id中,如下所示:@foreach (var category in ViewBag.Categories){&nbsp; &nbsp; &nbsp;<li class="item"><a id="categoryItem_@category.categoryName" value ="@category.categoryName">@category.categoryName</a></li>}但是,这仅在您的类别名称不包含空格的情况下才能正常工作,因此使用某种整数id可能会更好。还要注意""围绕value价值的双引号。

慕田峪7331174

根据您的代码来建立列表:@foreach (var category in ViewBag.Categories){&nbsp; &nbsp; <li class="item"><a value="@category.categoryName">@category.categoryName</a></li>}假设有15个类别,我想要第6个类别是“ java”,我可以使用jquery来获得。这可以解释为:第六类,恰好是“ java”(即值不相关)给予:$("li.item>a:eq(5)").addClass("thisone");或为:“ java”类别,恰好是第六类别(即职位无关)给予:$("li.item>a[value=java]").addClass("thisone");(它将选择所有“ java”)或为:第6个“ java”类别(即至少有6个为“ java”,而您希望第6个)给予:$("li.item>a[value=java]:eq(5)").addClass("thisone");更改.addClass("thisone")为您要对该项目执行的操作您似乎在问3个不同的问题-如何获取ID,如何获取nth元素以及:当我单击任何div中的任何链接或元素时,我必须获得分配给它的特定值$("li.item>a").click(function() {&nbsp; &nbsp; console.log($(this).prop("value"))});正如其他人指出的那样,问题是您可能使用:$("#categoryItem")...&nbsp;&nbsp;由于在HTML文档中ID必须是唯一的,因此,这始终会为您提供第一个信息。(您会注意到我id=从上面的代码段中删除了该问题)

慕码人8056858

你有categoryId你的category模式吗?如果您这样做,则更id="categoryItem"改为id="@category.categoryId"
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答