【发布时间】:2012-07-10 22:03:16
【问题描述】:
两天来,我一直在努力解决这个特殊问题。我觉得我很接近,但我无法破解它。我有一个带有 data-* 属性的 div:
<div class="pull-right" id="actions" data-ph-title="I am a title" data-ph-type="and a type" data-ph-source="from a source" data-ph-subject="with a subject">
当试图提醒 - 例如 - “data-ph-title”的值时,我可以执行以下操作,因为显然“ph”和“title”之间的破折号被删除了。
var info = $("#actions").data();
alert(info.phTitle);
这很好,它有效(警报:“我是一个标题”),但我真正想要的是用所有这些数据填充某些表单字段。我已将表单字段命名为与 info 对象的属性相同,例如:
<textarea id="placeholder-title" name="phName"></textarea>
我正在尝试设计一个循环,它将所有 info 对象的属性值放入相应的文本输入(或 textareas)中。这就是我卡住的地方。我目前有以下代码:
var info = $("#actions").data();
$.each(info, function(field, val){
$("[name='" + field + "']").val(val);
});
任何帮助将不胜感激!
【问题讨论】:
-
你是怎么卡住的?发生什么了?什么不会发生?你想发生什么?
-
@NickJacob
$.each -
Your code does seem to work, so far as I can tell... 唯一的问题是您在
#actions中没有名为data-ph-name的属性。 -
我被卡住了,因为脚本根本什么都不做。例如,我希望它把“这是一个标题”放到 textarea 中,但它没有发生。 $.each 应该根据jQuery site 工作
-
$(':input[name="phName"]').each(function(){ $(this).val("新值"); });
标签: javascript jquery jquery-data