Jquery 如何在x-可编辑上下文中访问数据属性中的值?
此代码触发具有多个字段(邮政地址)的表单的显示,以进行内联编辑。我想从触发元素中的数据属性中获取值(Jquery 如何在x-可编辑上下文中访问数据属性中的值?,jquery,x-editable,Jquery,X Editable,此代码触发具有多个字段(邮政地址)的表单的显示,以进行内联编辑。我想从触发元素中的数据属性中获取值(street\u name,等等)。下面的代码不这样做。如果我放一个字符串“百老汇”,它就会显示出来。可以在params中执行此操作(请参阅代码) 该文档包含一个具有多个字段的表单示例,但值是硬编码的 使用$(this).editable().attr('steet_name')在值中也不起作用(未定义的不是函数) 如何从触发元素的数据属性中获取所需的值 编辑-我将这个JS用于几个不同的触发元素,
street\u name
,等等)。下面的代码不这样做。如果我放一个字符串“百老汇”,它就会显示出来。可以在params
中执行此操作(请参阅代码)
该文档包含一个具有多个字段的表单示例,但值是硬编码的
使用$(this).editable().attr('steet_name')
在值中也不起作用(未定义的不是函数
)
如何从触发元素的数据属性中获取所需的值
编辑-我将这个JS用于几个不同的触发元素,所以我不能只设置一个var street_name=$(“#letterAddress”).data('street_name')代码>
编辑并添加相关HTML
<a
id="letterAddress"
href="#"
class="editable-address editable-empty-address"
data-column="ind_id"
data-street_name="<?=$addresses[1]->street_name?>"
data-street_nbr="<?=$addresses[1]->street_nbr?>"
data-city="<?=$addresses[1]->city?>"
data-zipcode="<?=$addresses[1]->zipcode?>"
data-country="<?=$addresses[1]->country?>"
>
<?=$address?>
</a>
如果您试图访问以下标记的“data street”属性,请使用data
功能:
<a href="#" data-street="some street" data-zip-code="12345">
<script>
var value = $(this).data('street');
var zip = $(this).data('zip-code');
</script>
这些将被拉入数据属性
$(".editable-address").each(function(){
var data = $(this).data();
console.log(data);
});
返回每个可编辑地址的对象
{column: "ind_id", street_name: "<?=$addresses[1]->street_name?>", street_nbr: "<?=$addresses[1]->street_nbr?>", city: "<?=$addresses[1]->city?>", zipcode: "<?=$addresses[1]->zipcode?>"}
{列:“标识”,街道名称:,街道编号:,城市:,邮编:}
然后,您可以迭代对象以获得所需的值 现在,您可以在数据值属性中使用JSON对象:
<a href="#" data-type="address" data-value="{city: 'Moscow', street: 'Lenina'}">Link</a>
欢迎来到StackOverflow!请看,共识是“不,他们不应该”。这很公平,但问题现在不那么清楚了……sry,还没有结束!…:/你能包括你的(相关的)HTML标记吗?添加了相关的HTML标记不能-我使用JS来处理几个不同的触发元素。更新了我的问题。我不认为你的$(这个)引用了标记,除非你把它放在onclick()中。如果你没有指定值,会发生什么?它应该从元素的text()
中收集它。我认为你是对的,但这是一个包含多个字段(street、nbr、zip、city)的表单。我认为,你必须指定哪些值必须以编程方式执行。不幸的是,我现在无法访问测试环境。尝试使用console.log
来显示这些值,并查看您的可用值。这主意不错,但我将此代码用于页面$('#letterAddress')上的多个地址。data()仅适用于一个地址。好的,让它成为可编辑类的泛型,并使用“this”关键字访问特定对象的数据。
$(".editable-address").each(function(){
var data = $(this).data();
console.log(data);
});
{column: "ind_id", street_name: "<?=$addresses[1]->street_name?>", street_nbr: "<?=$addresses[1]->street_nbr?>", city: "<?=$addresses[1]->city?>", zipcode: "<?=$addresses[1]->zipcode?>"}
<a href="#" data-type="address" data-value="{city: 'Moscow', street: 'Lenina'}">Link</a>