Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么可以';t I更新数据属性I';我在jQuery中迭代?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么可以';t I更新数据属性I';我在jQuery中迭代?

Javascript 为什么可以';t I更新数据属性I';我在jQuery中迭代?,javascript,jquery,Javascript,Jquery,我有一把小提琴,它显示了我遇到的确切情况 我想知道为什么我要做$('[data-prototype]')。每个我都不能用$(this)更新数据属性。data('prototype',value),但需要使用$(this.attr('data-prototype',value) 当一个click事件稍后用.data('prototype')抓取原型时,就好像它抓取的是DOM值,而不是应该在jQuery局部变量中更新的值。就我所理解的.attrvs.data而言,我本以为两者之间是相反的 编辑:在小

我有一把小提琴,它显示了我遇到的确切情况

我想知道为什么我要做
$('[data-prototype]')。每个
我都不能用
$(this)更新数据属性。data('prototype',value)
,但需要使用
$(this.attr('data-prototype',value)

当一个click事件稍后用
.data('prototype')
抓取原型时,就好像它抓取的是DOM值,而不是应该在jQuery局部变量中更新的值。就我所理解的
.attr
vs
.data
而言,我本以为两者之间是相反的

编辑:在小提琴中实现了事件片段的简化版本后,它似乎按照预期工作。我的其他LIB中一定有导致冲突的内容。

两个代码返回相同的结果

这:

$('[data-prototype]').each(function(i, element) {
    var prototype = $($(element).data('prototype'));
    prototype.find('label').each(function(l, label) {
      $(label).text('****'); //removed code for clarity
    });


    $(this).data('prototype', prototype[0].outerHTML);
    console.log( $(this).data('prototype'))
    });
收益率:

<div class="form-group"><label class="control-label required">****</label><div id="ew_ability_attributeComponents___name__"><div class="form-group"><label class="control-label" for="ew_ability_attributeComponents___name___attribute">****</label><select id="ew_ability_attributeComponents___name___attribute" name="ew_ability[attributeComponents][__name__][attribute]" class="form-control"><option value=""></option><option value="1">Reflexes</option></select></div><div class="form-group"><label class="control-label required" for="ew_ability_attributeComponents___name___composition">****</label><div class="input-group"><input type="text" id="ew_ability_attributeComponents___name___composition" name="ew_ability[attributeComponents][__name__][composition]" required="required" class="form-control"><span class="input-group-addon">%</span>
    </div></div></div></div>
<div class="form-group"><label class="control-label required">****</label><div id="ew_ability_attributeComponents___name__"><div class="form-group"><label class="control-label" for="ew_ability_attributeComponents___name___attribute">****</label><select id="ew_ability_attributeComponents___name___attribute" name="ew_ability[attributeComponents][__name__][attribute]" class="form-control"><option value=""></option><option value="1">Reflexes</option></select></div><div class="form-group"><label class="control-label required" for="ew_ability_attributeComponents___name___composition">****</label><div class="input-group"><input type="text" id="ew_ability_attributeComponents___name___composition" name="ew_ability[attributeComponents][__name__][composition]" required="required" class="form-control"><span class="input-group-addon">%</span>
    </div></div></div></div>
收益率:

<div class="form-group"><label class="control-label required">****</label><div id="ew_ability_attributeComponents___name__"><div class="form-group"><label class="control-label" for="ew_ability_attributeComponents___name___attribute">****</label><select id="ew_ability_attributeComponents___name___attribute" name="ew_ability[attributeComponents][__name__][attribute]" class="form-control"><option value=""></option><option value="1">Reflexes</option></select></div><div class="form-group"><label class="control-label required" for="ew_ability_attributeComponents___name___composition">****</label><div class="input-group"><input type="text" id="ew_ability_attributeComponents___name___composition" name="ew_ability[attributeComponents][__name__][composition]" required="required" class="form-control"><span class="input-group-addon">%</span>
    </div></div></div></div>
<div class="form-group"><label class="control-label required">****</label><div id="ew_ability_attributeComponents___name__"><div class="form-group"><label class="control-label" for="ew_ability_attributeComponents___name___attribute">****</label><select id="ew_ability_attributeComponents___name___attribute" name="ew_ability[attributeComponents][__name__][attribute]" class="form-control"><option value=""></option><option value="1">Reflexes</option></select></div><div class="form-group"><label class="control-label required" for="ew_ability_attributeComponents___name___composition">****</label><div class="input-group"><input type="text" id="ew_ability_attributeComponents___name___composition" name="ew_ability[attributeComponents][__name__][composition]" required="required" class="form-control"><span class="input-group-addon">%</span>
    </div></div></div></div>
*******反射*****%
考虑到无法比较的结果,两者都是相同的:


可能的副本您有额外的`});`最后。你的代码不正确work@RoyiNamir谢谢,当我切下包装时没有改变代码的影响,我错过了这一点。当我在循环中使用console.log时,这就是我所期望的,但是当一个事件稍后捕获
.data('prototype')
时,它就好像从dom中抓取了它一样,我希望使用
.attr
时会出现这种情况,因为两者的存储位置不同。