根据文本匹配查找段落的ID

时间:2012-11-05 08:47:23

标签: jquery

当我传递文本“选择列表”或“删除列表”时,如何获取段落的ID。

"<p id="section_548540600_title" class="CollapseExpand CollapseExpand_active" title="Collapse / Expand"><a href="javascript:void(0);">Selection List</a></p>"

"<p id="section_362548963_title" class="CollapseExpand CollapseExpand_active" title="Collapse / Expand"><a href="javascript:void(0);">Deletion List</a></p>"

3 个答案:

答案 0 :(得分:6)

假设我已正确理解您的问题,您可以使用:contains选择器根据文字内容匹配元素:

// Where `someString` is "Selection List" or "Deletion List":
var id = $("p:contains('" + someString + "')").attr("id");

<强>更新

请注意,上述方法假设您只有一个包含每个字符串的元素。如果有其他元素包含相同的字符串,您可能需要一种不同的方法来确保该元素仅包含 该字符串:

var id = $("p").filter(function () {
             return $.trim($(this).text()) === "Test";
         }).attr("id");

答案 1 :(得分:0)

将HTML字符串传递给jQuery将为您提供该字符串的DOM表示,然后您就可以像操作DOM中实际存在的任何节点一样进行操作。在你的情况下:

$(htmlString).attr('id');

答案 2 :(得分:0)

如果您的意思是,单击该段落,您可以这样做:

HTML :(在锚标记中添加了类)

      "<p id="section_548540600_title" class="CollapseExpand CollapseExpand_active" title="Collapse / Expand"><a href="javascript:void(0);" class='myclass'>Selection List</a></p>"

JS:

     $(".myclass").on({

       click : function(e){
          req_id = $(this).parent().attr("id");

        }
     });