我在多个元素(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个数据属性吗?
答案 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'));
});