可以检查Listview(jQuery Mobile)是否包含可折叠?

时间:2013-11-29 18:33:20

标签: javascript jquery jquery-mobile jquery-mobile-listview jquery-mobile-collapsible

我在collapsibles元素中有一个随机数listview。 我想知道的是,在进入下一页之前,如果listview中有collapsibles其中有任何$("#medListLi").find('div[data-role=collapsible]')....; ,就有“知道”的方法。

Fiddle几乎代表了我到目前为止的所作所为。

我希望某种客户端验证可以检查“用户”是否在继续之前将“药物”添加到列表中(以可折叠的形式)。

我尝试过使用这段代码:

{{1}}

但似乎无法知道如何正确处理解决方案。

也许我正在以错误的方式解决这个问题,我们非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

如果您的true包含可折叠元素,我认为您需要一个评估为#medListLi的JavaScript条件:

if ( $("#medListLi").find('div[data-role=collapsible]').length ) {
    //yup, their is something collapsible in here
}

此代码执行以下操作:

  1. 在该元素中选择ID为#medListLi的元素
  2. 找到div属性设置为“可折叠”的任何data-role
  3. jQuery返回数组中的所有元素; .length JavaScript属性将返回0或某个正数,其被评估为false(对于0)或true(对于任何其他正数)。

答案 1 :(得分:1)

您提供的选择器只需要.length,如下所示:

$("#medListLi").find('div[data-role=collapsible]').length

当使用jQuery选择器时,在末尾添加.length总是返回匹配元素的数量。

如果没有可折叠的1,如果有一个等等,上面的内容将返回0 ...

要在if语句中使用此功能,您需要做的只是:

if ($("#medListLi").find('div[data-role=collapsible]').length > 0) {
    // submit
} else {
    // error (no collapsibles)
}