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>