在我的项目中,我目前在HTML中使用一些自定义data-*属性来传达jQuery将使用的一些额外数据.我发现了这个.data()方法,并注意到如果我有一个data-*属性data-my-attribute,我可以通过选择带有属性和调用的元素在jQuery中检索它的值.data("my-attribute").
我认为这是应该使用的方式(没有查看文档)并通过我的jQuery代码使用它.但是,现在我注意到当我"000005643"在HTML data-*属性中添加一个字符串时,.data("my-attribute")返回5643时.attr("data-my-attribute")返回"000005643".后者是我想要的.这导致我查阅文档,实际发现有.data()比我想象的更多.此外,我从未看到任何表明您应该.data()用来检索data-*属性值的文本或示例.这让我担心我做了一些根本错误的事情.
那么我是否应该停止并停止以.data()这种方式使用?如果没有,您能否将我链接到有关.data()解释此用途的功能的一些文档.
是否可以将数据属性用于JQuery Validate插件.我目前使用的是类名,例如
class="{required:true, messages:{required:'You must choose a site.'}}"`
Run Code Online (Sandbox Code Playgroud)
但需要使用数据属性,例如
data-validate="{required:true, messages:{required:'You must choose a site.'}}"`
Run Code Online (Sandbox Code Playgroud)
输入可能具有多个与其关联的数据属性,这与验证无关,例如
<input name="txt_txt001" type="text" maxlength="30" id="txt_txt001" class= "
{required:true, messages:{required:'This field is required.'} }" data-
children="ddl_txt007,ddl_txt008" data-optionGroup="1" data-optionGroupParent="" />
Run Code Online (Sandbox Code Playgroud)
我知道ketchup插件提供了这个,但不想转移到它,因为我已经把大量工作用于使用JQuery Validate进行页面设置.
谢谢
可能重复:
HTML属性的长度是否有限制?
我想使用数据属性在网页上的脚本之间传递JSON.例如,div标签可能如下所示:
<div data-choices='{"name1":"Jack","name2":"Jeff"," name3":"Zoe"}' />
Run Code Online (Sandbox Code Playgroud)
这与dojo工具包对选项的作用类似,但在我的情况下,JSON字符串可能更长.
数据属性是否有任何大小限制(W3C推荐,浏览器限制等)?
我有一个书籍列表,我想存储每本书的数据,例如价格、数量、id、类别 id、大小、重量等。
我正在考虑通过使用 data- 属性扩展表示列表中每本书的 li 元素来将所有这些存储在 dom 中。然后可以直接使用 javascript 使用这些数据。
但是我读到访问数据属性在性能方面很慢。此外,我可以拥有同一本书的多个实例,所以我有点担心 html 中的膨胀。
另一种方法是使用 JS 对象来存储每本书的数据。
所以我的问题是在前端、DOM 或 JavaScript 中存储数据的最佳实践是什么?
提前致谢
我的问题是:我无法data-id通过jQuery 设置增量到HTML元素.我能够提醒相同,但我没有设置HTML.如果我检查,元素没有变化.
jQuery的
$(document).ready(function() {
$("#search").click(function(){
var num = $(this).data('id');
num++;
$("span").text(num);
$(this).data('id', num);
});
});
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个
$(this).data('id') === num;
Run Code Online (Sandbox Code Playgroud)
这是一个jsFiddle演示
我v1.9.1在控制台中使用并且没有错误.如果有人能找到这个问题,它会很棒.
我的应用程序使用 Parse 后端来保存我和我的朋友感兴趣的我所在地区所有音乐会的运行列表。
在主页上,我使用解析查询为数据库中存储的每个节目显示一个模块。创建每个模块时,我使用此代码将数据属性添加到节目的最外层 div,对应于解析中节目的对象 ID:
var showId = object.id;
$("div.show_module:last").data("showId", showId);
Run Code Online (Sandbox Code Playgroud)
当用户单击节目的模块时,我能够成功检索特定节目的 showId:
$("#showsList").delegate(".showModuleBody", "click", function() {
var storeObjectId = $(this).closest("div.show_module").data("showId");
});
Run Code Online (Sandbox Code Playgroud)
一切都很好,证明分配数据属性是有效的。
我遇到麻烦的地方是尝试在给定页面上查找具有特定数据属性或该属性的特定值的元素。最终目标是获取该 div 的 y 偏移量,以便我可以将页面滚动到适当的位置。我以为我可以使用以下代码来查找该元素,但它不起作用 -
// find all elements with class .show_module
var allShows = document.querySelectorAll('.show_module');
// find all elements with showId data attribute
var showsWithShowId = document.querySelectorAll('[data-showId]');
// find all elements with a specific showId data attribute
var showToFind = document.querySelectorAll("[data-showId='2']");
Run Code Online (Sandbox Code Playgroud)
这三个查询中的第一个有效,证明在我调用此函数时,我感兴趣的所有元素都已加载到页面中,但第二个和第三个查询不返回任何内容。
知道我在这里做错了什么吗?与语法有关吗?querySelectorAll 是否与我设置数据属性的方式不兼容?
我尝试只包含我认为重要的代码部分,但如果需要更多内容,请告诉我。
html 的数据属性有限制吗?一个标签上可以有很多数据属性吗?
前任。 data-a="" data-b="" data-c="" ... data-z=""
并且每个数据属性的值是否有限制?
我正在努力解决可能是一个非常简单的jQuery
我有这样的HTML:
<div class="star-rating" data-star-rating="5.0"></div>
<div class="star-rating" data-star-rating="2.0"></div>
Run Code Online (Sandbox Code Playgroud)
我有一些javascript,需要根据每个元素的星级评分做一些事情,目前看起来像这样:
$('.star-rating').jRate({
startColor : '#ccc',
endColor : '#ccc',
readOnly : true,
rating : <value of data-star-rating>
});
Run Code Online (Sandbox Code Playgroud)
我想替换<value of data-star-rating>与当前正在处理的元素相关的数据属性的值
我认为这会起作用,$(this).data('starRating')但似乎没有
在这种情况下如何访问data属性的值?
这是我的方法
public Component SaveComponent([ValidateMetaFields] Component componentToSave) {
...
}
Run Code Online (Sandbox Code Playgroud)
这是我的自定义属性:
[AttributeUsage(AttributeTargets.Parameter)]
public class ValidateMetaFieldsAttribute : Attribute
{
public ValidateMetaFieldsAttribute()
{
// how to access `componentToSave` here?
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道有没有办法从中访问componentToSave对象ValidateMetaFieldsAttribute?我找不到任何示例代码或示例.
我想使用注释为 Entity Framework Core 中的属性设置默认值。问题是数据库没有设置默认值,因此该值没有传递到数据库层。
我想做一些类似于modelBuilder's 的事情HasDefaultValueSql:
[DefaultValue("400")]
public int LengthInMeters {get; set;}
Run Code Online (Sandbox Code Playgroud)
您如何将以下代码转换为属性?
modelBuilder.Entity<Patient>().Property(c => c.LengthInMeters).HasDefaultValueSql("400");
Run Code Online (Sandbox Code Playgroud)
单独使用默认值是行不通的。我想单独使用属性而不必弄乱迁移。
问题:我已经尝试过使用 EF 的其他方法,但 Entity Framework Core 没有一些项目。如modelBuilder.Conventions也不AttributeToColumnAnnotationConvention也不CSharpMigrationCodeGenerator也不modelBuilder.Properties()