escape dot in javascript

前端 未结 5 917
猫巷女王i
猫巷女王i 2020-12-10 15:49

jQuery selector can\'t select an ID if it contains a . in it.
in my application ID name generates dynamically from usernames.

How can I esca

5条回答
  •  我在风中等你
    2020-12-10 16:28

    The official jQuery FAQ has that exact question: How do I select an element by an ID that has characters used in CSS notation? They even have a function to help you escape. Quoting it:

    ... The colon (":") and period (".") are problematic within the context of a jQuery selector because they indicate a pseudo-class and class, respectively.

    In order to tell jQuery to treat these characters literally rather than as CSS notation, they must be "escaped" by placing two backslashes in front of them.

    // Does not work:
    $( "#some:id" )
     
    // Works!
    $( "#some\\:id" )
     
    // Does not work:
    $( "#some.id" )
     
    // Works!
    $( "#some\\.id" )
    

    The following function takes care of escaping these characters and places a "#" at the beginning of the ID string:

    function jq( myid ) {
        return "#" + myid.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
    }
    

    The function can be used like so:

    $( jq( "some.id" ) )
    

提交回复
热议问题