我是JQuery的新手,实际上这是我写过的第一个脚本.下面简单地找到所有带有"TestDIV"类的DIV,然后对它们内部的输入执行一些操作.
一切都与borderColor不同,后者仍然是我最初设置它的颜色.有没有人对这是为什么有任何想法?我也非常欢迎有关如何改进代码的提示.
function hideAndShowJQ(show) {
var hideColor = "#DFDFDF";
//Find DIVs and modify styling
var div = $('div.TestDIV'); //Find relevant divs
div.css('color', (show) ? "" : hideColor) //Change text colour
.find(':input').attr("disabled", !show) //Disable any inputs
.attr("borderColor", "red") //Change border colour of inputs
.attr("value", ""); //Clear any existing input text
}
Run Code Online (Sandbox Code Playgroud)
问题是它borderColor不是元素的属性,而是CSS属性.
要更改css属性/值使用css().此外,当使用引号时,它"border-color"不是borderColor(尽管@Felix Kling指出,在下面的评论中,关于camelCase在引号中并不重要):
div.css('color', (show) ? "" : hideColor) //Change text colour
.find(':input').attr("disabled", !show) //Disable any inputs
.css("border-color", "red") //Change border colour of inputs
.attr("value", ""); //Clear any existing input text
Run Code Online (Sandbox Code Playgroud)
鉴于您正在使用jQuery,并且有一个input要清除的元素,它可能更容易使用val(),而不是attr():
.val(''); // sets the value of the input to an empty string.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13413 次 |
| 最近记录: |