检查div是否具有包含字符串和变量的ID

时间:2014-07-01 07:42:06

标签: jquery

我觉得我会犯这个非常业余的错误,但经过一整天的拉扯我留下的头发后,这里有:

我需要能够检查页面上是否存在div,因为它包含ID字符串+当鼠标悬停在另一个div上时生成的变量。

例如:

我的侧边栏导航中有一个DIV,其中包含' Google'在一个范围内。

当用户将鼠标悬停在此div上时,我创建了一个包含span中文本的变量,让我们调用此变量sideBarButtonName。

然后,我想在DOM中搜索ID包含单词" nav _" + sideBarButtonName,如果存在这样的div,则抛出alert.wb 如果这不存在,那么我有一个其他声明正常工作。

我无法做到这一点!救命啊!

我挣扎的部分是检查

的计数
 $("div[id*='nav_']") + (sideBarButtonName).length > 0

我创造了一个复制我所拥有的问题的小提琴。

http://jsfiddle.net/Pu5FJ/1/

谢谢!

3 个答案:

答案 0 :(得分:1)

您需要将sideBarButtonName放在选择器内。由于您的ID完全匹配,因此您可以直接定位:

$('#nav_' + sideBarButtonName).length

Here's a fiddle

答案 1 :(得分:1)

从你的小提琴看来,“包含”似乎意味着等于,所以:

if ($('#nav_' + sideBarButtonName).length) {
    // alert here
}

Demo

但是,看到您的HTML结构,您可能希望稍微改进一下:

<div class="sideBarButton" data-url="http://www.google.com">
    <div id="nav_Google" class="side-nav">
    </div>
    <span>Google</span>
</div>

然后检查内部是否存在具有“side-nav”类的元素:

$('.sideBarButton').mouseenter(function() {
    if ($(this).find('.side-nav').length) {
        // alert here
    }
});

答案 2 :(得分:0)

 $("div[id='nav_" + sideBarButtonName + "']").length > 0) {

$("div #nav_" + sideBarButtonName + "").length > 0)

DEMO