Javascript 查找和筛选两者都不工作

Javascript 查找和筛选两者都不工作,javascript,jquery,Javascript,Jquery,我试图找到一个具有特定类的span,该类包含一个变量,用于在jQuery中为其分配一个width属性。我想我可以使用find(),因为它是我用来查找它的td的子元素 我尝试了find()和filter(),但都没有返回任何内容。 救命啊 $(文档).ready(函数(){ //这两个变量来自列表 var person=“Rick”; var1=2; var元素=$('td').filter(函数(){ var Text=$(this.contents()[0].textContent.trim

我试图找到一个具有特定类的span,该类包含一个变量,用于在jQuery中为其分配一个width属性。我想我可以使用find(),因为它是我用来查找它的td的子元素

我尝试了find()和filter(),但都没有返回任何内容。 救命啊

$(文档).ready(函数(){
//这两个变量来自列表
var person=“Rick”;
var1=2;
var元素=$('td').filter(函数(){
var Text=$(this.contents()[0].textContent.trim();
返回parseInt(Text,10)=var1;
});
add_html=element.append('
'); $(窗口).on('resize',function()){ //计算所需的跨度宽度(为简单起见,变量) 变量长度=3; var cell_width=element.width(); 变量宽度=函数(){ 返回长度*单元格宽度; } //为什么这不起作用??? var resize_span=element.find('.calendar_element'+person); $('span.calendar\u element'+person).css('width',width); }).resize(); });
div.class1{
位置:相对位置;
}
桌子{
边界:1件坚固的海军;
宽度:70%;
文本对齐:居中;
}
表th{
文本对齐:居中;
宽度:100px;
高度:20px;
}
表td{
宽度:100px;
高度:100px;
垂直对齐:顶部;
文本对齐:右对齐;
边框:1px实心#C6EC;
}
span.u元素{
背景颜色:紫色;
高度:14px;
显示:内联块;
填充:2px;
z指数:1;
}

1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12

您的代码有两个问题。首先,您将
width
定义为一个函数,因此将其作为值传递给
css()
setter不会产生预期的效果。其次,您的选择器不太正确。在类选择器上需要一个
前缀,并且值之间没有空格,因为两个类位于同一元素上。尝试此版本,并进行一些附加的逻辑修改:

$(文档).ready(函数(){
var person=“Rick”;
var1=2;
var$element=$('td').filter(函数(){
返回parseInt($(this.text().trim(),10)=var1;
}).append(“
”); $(窗口).on('resize',function()){ 变量长度=3; var width=$element.width()*长度; $element.find('.calendar\u element.'+person).css('width',width); }).resize(); });
div.class1{
位置:相对位置;
}
桌子{
边界:1件坚固的海军;
宽度:70%;
文本对齐:居中;
}
表th{
文本对齐:居中;
宽度:100px;
高度:20px;
}
表td{
宽度:100px;
高度:100px;
垂直对齐:顶部;
文本对齐:右对齐;
边框:1px实心#C6EC;
}
span.u元素{
背景颜色:紫色;
高度:14px;
显示:内联块;
填充:2px;
z指数:1;
}

1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12

您的代码有两个问题。首先,您将
width
定义为一个函数,因此将其作为值传递给
css()
setter不会产生预期的效果。其次,您的选择器不太正确。在类选择器上需要一个
前缀,并且值之间没有空格,因为两个类位于同一元素上。尝试此版本,并进行一些附加的逻辑修改:

$(文档).ready(函数(){
var person=“Rick”;
var1=2;
var$element=$('td').filter(函数(){
返回parseInt($(this.text().trim(),10)=var1;
}).append(“
”); $(窗口).on('resize',function()){ 变量长度=3; var width=$element.width()*长度; $element.find('.calendar\u element.'+person).css('width',width); }).resize(); });
div.class1{
位置:相对位置;
}
桌子{
边界:1件坚固的海军;
宽度:70%;
文本对齐:居中;
}
表th{
文本对齐:居中;
宽度:100px;
高度:20px;
}
表td{
宽度:100px;
高度:100px;
垂直对齐:顶部;
文本对齐:右对齐;
边框:1px实心#C6EC;
}
span.u元素{
背景颜色:紫色;
高度:14px;
显示:内联块;
填充:2px;
z指数:1;
}

1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12

javascript中的.calendar\u元素在td元素@rorymcrossani中附加了.append(),如果我使用exists()函数,它返回false,因此找不到span元素@americanslimetheJavaScript中的.calendar\u元素在td元素@rorymcrossani中附加了.append(),如果我使用exists()函数函数返回false,因此它找不到span元素@AmericanSlime我就快到了,调整页面大小后我无法更改css,尽管它找到的元素很好。元素上出现$的原因是什么?这只是一个变量?是否有理由附加元素过滤器而不是稍后再添加@Rory McCrossance
$
变量的前缀是一种命名约定,表示它包含一个jQuery对象。啊,好的。唯一对我不起作用的是.css()。此外,resize的问题是,每次它触发时,您将
span
的宽度乘以
3
,因此它呈指数增长。在小提琴中更容易看到,因为您可以调整输出窗格的大小,而无需更改窗口:如果每次打印新宽度的值时,这些值看起来都正常。一切看起来都很好,当我调整页面大小时,css/html在chrome开发者工具中不会改变。因此.css()对meI不起作用。我就快到了,我无法在调整页面大小后更改css,尽管它发现元素很好。为什么会这样$