jQuery:contains()选择器在特定字符串

时间:2018-02-27 15:46:08

标签: javascript jquery html

我正在使用此表达式来查找包含植物学名称的div。由于植物名称的性质,它们有时需要包含一些特殊字符。

它适用于我尝试的每个botName,除了这个:“Cornus florida var rubra”,我无法弄清楚为什么。事实上,它甚至适用于“Cornus florida var”。

我无法控制植物名称的选择或格式,因此无法更改原始名称。

有什么想法吗?

matchingDiv = $("[class=iconDiv]:contains(" + botName + ")");

html采用以下格式:

    <div id="iconDiv-Cornus florida var rubra" class="iconDiv" 
         onclick="select(this,28);" title="" 
         style="background-color: rgba(0, 0, 0, 0);">

        <div class="table">
            <img class="imgs" src="/Library/Application Support/Xxxxx/Xxxxx/Cornus_florida_var_rubra/Cornus_florida_var_rubra.png" 
                 width="177" border="0">

            <div class="nameDiv">
                Pink-flowering dogwood<br>(Cornus florida var. rubra)
            </div>
        </div>
    </div>

1 个答案:

答案 0 :(得分:0)

:contains()找到了匹配的子文本,而不是匹配的子ID,这在少数情况下起了至关重要的作用。谢谢,Taplar和Andreas!

这最终起作用了:

$('.iconDiv').filter('[id*="'+ botName + '"]')