javascript - 选择的设置属性不持久

标签 javascript jquery attributes

我有一个选择输入,我通过 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 语句
<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/

相关文章:

javascript - 为什么我的 jQuery focusout(或模糊)事件没有被触发?

jquery - CSS Transition 不适用于汉堡包按钮

c# - asp.net c# asp :TextBox, 如何去掉cols和rows属性?

javascript - 在另一个类中添加一个或多个类的实例

javascript - 如何测试 URL 字符串是绝对的还是相对的?

javascript - jquery 获取按钮数组及其值

javascript - 如何使用ajax codeigniter突出显示日期?

php - Jquery刷新div

asp.net-mvc-3 - MVC 3 中忽略 OutputCache 属性

javascript - javascript可以重写外部文件吗