我想要做的是更改范围的样式属性。我可以通过搜索一个类的子元素, 但它并没有改变那个元素的风格。这是我的代码:
$(".cmbdiaclase > span").each(function ()
{
if($(this).attr("class") == "selectBox-label"){
$(this).style.width = "70px"; //no change style a element
}
});
我希望你能帮帮我,谢谢你。
答案 0 :(得分:3)
$(".cmbdiaclase > span").each(function () {
if($(this).hasClass('selectBox-label')){
$(this).css('width', '70px');
}
});
答案 1 :(得分:3)
这是另一种使用改进的选择器
来实现更多jQuery样式的方法$(".cmbdiaclase > span.selectBox-label").css("width", "70px");
但请注意,除非width
元素的CSS <span>
属性设置为display
或{{}},否则您不会看到对CSS block
属性的任何更改{1}}。
如果您想保留相同的代码,那么您只需更改原始代码中的一些内容即可。设置CSS样式时,您应该使用.css()
。测试课程时,您可以使用.hasClass(className)
inline-block
答案 2 :(得分:1)
$(".cmbdiaclase > span").each(function () {
if($(this).hasClass('selectBox-label'){
$(this).css('width', '70px');
}
});
答案 3 :(得分:1)
在此解决方案中,您需要使用 CSS()功能来更改样式。
$(".cmbdiaclase > span").each(function ()
{
if($(this).hasClass("selectBox-label")){
$(this).css('width','70px'); //no change style a element
}
});
答案 4 :(得分:0)
<强> JS:强>
变化:
$(this).style.width = "70px"; //no change style a element
到:
$(this).style.width("70px");
由jQuery的width文档:
定义.width(value)
值 类型:字符串或数字 一个整数,表示像素数,或整数以及附加的可选测量单位(作为字符串)。
正如其他人提到的那样,你也应该改变你的用法:
if($(this).attr("class") == "selectBox-label"){
要:
if($(this).hasClass('selectBox-label')){
由hasClass的jQuery文档定义:
描述:确定是否为任何匹配的元素分配了给定的类 .hasClass(className)
类名
类型:字符串
要搜索的班级名称。
答案 5 :(得分:0)
你几乎是对的:
$(".cmbdiaclase > span").each(function () {
// use hasClass, instead of checking the attr("class"), this will only work if it has 1 class.
if($(this).hasClass('selectBox-label')){
// This is wrapped in a jQuery $( ) which makes it a jQuery object
$(this).css('width', '70px');
// Not wrapped in a jQuery $( ), it stays the DOM object.
this.style.width = "70px";
}
});
所以这取决于你在上下文中如何使用它。你想要一个jQuery对象还是一个DOM对象。