我有一个选择输入,我通过 jQuery 设置多个属性。然后我有一个 console.log 确认代码正常运行,然后如果我再次 console.log 它就不再存在了。有什么建议吗?
thisQuestionHTML
只是一段 HTML 代码(2 个 div 包裹在我将其转换为 jQuery 对象的 select 语句周围。
line 1: $(thisQuestionHTML).find('.answerValue').attr('multiple','multiple');
line 2: console.log($(thisQuestionHTML).find('.answerValue').attr('multiple','multiple'));
line 3: console.log($(thisQuestionHTML));
第 1 行:这是我期望实际设置的非调试代码
第 2 行:此调试代码正在确认其已设置。它返回带有 multiple="multiple"
<select class="answerValue" data-questionid="a0NJ0000008ZwjOMAS" multiple="multiple"></select>
第 3 行:此调试代码返回 不带 multiple
属性的 select 语句。
<div class="control-group">
<span class="control-label">MS picklist question</span>
<div class="controls">
<select class="answerValue" data-questionid="a0NJ0000008ZwjOMAS"></select>
</div>
</div>
最佳答案
您将在三行中的每一行上创建一个新的 jQuery 对象,因为 thisQuestionHTML
只是一个 HTML 字符串。 jQuery 不会更新字符串,thisQuestionHTML
永远不会改变。
Line 2: this debug code is confirming its being set.
这^不是真的,您正在再次设置该值(请注意 attr()
的两个参数)。
存储对对象的引用,而不是每次都创建新的引用:
var obj = $(thisQuestionHTML);
obj.find('.answerValue').attr('multiple','multiple');
console.log(obj); // contains updated select
关于javascript - 选择的设置属性不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453464/