jQuery显示从不同数据属性中获取的相同值

时间:2017-07-07 07:15:46

标签: jquery

我在多个元素(data-product-name& data-product-code)中放置了2个相同的数据属性,目的是在某些输入字段中填充数据属性中的值。

<strong class="displayed_product_name" data-product-name="All content" data-product-code="abc">All content</strong>

我抓取数据属性值并将它们作为数组。

var arrProductCode = [];
$(this).closest('.each_content_item').find('[data-product-code]').each(function () {
    arrProductCode.push($(this).text());
});

var arrProductName = [];
$(this).closest('.each_content_item').find('[data-product-name]').each(function () {
    arrProductName.push($(this).text());
});

在元素和输入字段中填充它们

$(arrProductName).each(function () {
    $('.pop_edit_country').find('.pop_edit_product_list ul').append("<li>" + this + "</li>");
});
$(arrProductCode).each(function () {
    $('.hidden_edit_country_product_list').val($('.hidden_edit_country_product_list').val() + arrProductCode + ',');
});

data-product-name的值是否正确抓取,但为什么data-product-code的值与data-product-name相同?我无法解决它,是因为1个元素不能包含2个数据属性吗?

1 个答案:

答案 0 :(得分:1)

这是因为在这两种情况下都可以调用text函数而不是调用data函数。

text函数获取元素的文本上下文,而data函数获取您传递给它的data attribute内容。

以下是更正后的代码:

var arrProductCode = [];
$(this).closest('.each_content_item').find('[data-product-code]').each(function () {
    arrProductCode.push($(this).data('product-code'));
});

var arrProductName = [];
$(this).closest('.each_content_item').find('[data-product-name]').each(function () {
    arrProductName.push($(this).data('product-name'));
});