2013-12-19 19 views
3

如何组合这个选择器并使用prototype.js获取输出?如何使用选择器组合来获取使用Prototype.js的空字段

我的HTML代码:

<input id="age" value=""> 
<span id="movieSelection" class="defaultText"> 
<button >addButton</button> 

这是粗糙的HTML代码,并添加按钮点击时将添加年龄输入ID和span标签每一次不同的ID现在

的一个多行
$$('input[id*=age]:and[value=""]').length 

会给我空年龄场

$$('span[id*=movieSelection]:and[class*=defaultText]').length 

会给我空的选择。

现在我想结合这两个情况在一个$$()。长度将满足我的要求。

假设我有10行,在我充满3个年龄值,所以选择应该给我回答,因为7岁,并具有空值movieSelection列组合是7

请帮助我。 在此先感谢。

+0

尝试','(“或”)。我怀疑有更大的问题,但做出选择。另外,如果我是你,我会重新考虑一个新项目的原型。 –

+0

我试过,但它给了我长度作为两者的组合,例如有两行,其中年龄字段为空和span类作为defaultText –

回答

3

属性选择检查元素不修改状态的唯一初始状态。所以你的输入元素的属性选择器将不起作用。如果你只是想确保它不是空的,那么你可以使用:有效的选择器&将必需的属性添加到元素。

您还应该考虑将这两个元素(输入&范围)包装在某个其他元素下。现在,跨度&输入之间似乎没有任何关系。如果您有多个跨度&输入,则很难检查哪个跨度对应于哪个输入。

最后要回答你的问题,你可以使用下面的选择器。它将选择具有默认文本类&的span元素,前面是空输入元素。请记住,它只会返回你的span元素。如果你的目标只是检查长度,这应该就足够了。否则,修改此选择器以返回包括输入的所有元素。

'input[id*=age]:not(:valid) + span[id*=movieSelection][class*=defaultText]' 

我修改了由wared创建的小提琴。你可以看看这里:http://jsfiddle.net/e6BdP/9/

2

试试这个选择查询

$$('input[id*=age]:and[value=""],span[id*=movieSelection]:and[class*=defaultText]').length 
+0

我试过,但错误的输出 –

+0

假设有两行,那么年龄和跨度字段都是空的...上面的选择给我的价值为4.这里输出的预期是2,因为我想两者的组合。 –

+0

阅读我更新的问题。 –

相关问题