有没有办法使用jQuery有条件地设置属性?例如,我想简化这个:
$(element).val('99');
if ([condition]) {
$(element).attr('myAttr', 1);
}
Run Code Online (Sandbox Code Playgroud)
这有效,但迫使我打破了方法调用的链接.相反,我更喜欢这样的事情:
$(element).val('99').attr('myAttr', 1, [condition]);
Run Code Online (Sandbox Code Playgroud)
因此,仅在条件为真时才设置属性.我该怎么做?
Ser*_*gio 10
那么你可以使用:
$(element).val('99').attr('myAttr',[condition] ? 1 : $(element).attr('myAttr'));
Run Code Online (Sandbox Code Playgroud)
在这里演示
选项2,只是:$(element).val('99').attr('attr',[condition] ? 1 : undefined).
在这里演示
请注意,正如@FrédéricHamidi所提到的,这个选项2 可能会破坏旧版jQuery中的链.但是从jQuery 1.7.2开始
如果您不想在条件为false时重置属性值,则可以使用带有函数的形式attr():
$(element).val("99").attr("myAttr", function() {
if (condition) {
return 1;
}
});
Run Code Online (Sandbox Code Playgroud)
不从函数返回任何内容(或返回undefined,这是等效的)将保持属性值不变.
| 归档时间: |
|
| 查看次数: |
4219 次 |
| 最近记录: |