html标签的id中的特殊字符

big*_*big 16 html jquery

在HTML代码中,我现在使用代码 <input type = "text" id = "abc@def.com">来获取文本,它需要获取在文本字段中输入的值.我正在使用jquery来做到这一点:

$( document ).ready( function() {
    $( ".bid" ).click( function() {
        idVal = this.id
        bidID = "#" + idVal + "bid"
        spanID = "#" + idVal + "cbid"
        bidValue = $(bidID).val();

        alert(idVal)
        alert(bidID)
        alert(bidValue) //this alert says undefined
        $( spanID ).html( '&nbsp;' ).load( '{% url online_machines %}?id=' + idVal + '&bidvalue=' + bidValue);
    });
});
Run Code Online (Sandbox Code Playgroud)

通过这样做我得到未定义的值错误.我试图从id中删除特殊字符以获取其值.但是我需要带有特殊字符的id.如何使用jquery获取其值?

小智 29

而不是使用#尝试ID,尝试这样匹配这样的属性,

$('[id=ID]')
Run Code Online (Sandbox Code Playgroud)

要么

$('[id='+ID+']')
Run Code Online (Sandbox Code Playgroud)

而不是

bidID = "#" + idVal + "bid"
Run Code Online (Sandbox Code Playgroud)

你可以试试

bidID = "[id=" + idVal + "bid]"
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下你可能想接受/ upvote :) (7认同)
  • 在某些情况下,您可能需要这样做: $("[id='ID']") (3认同)
  • 这可能不起作用:$('[id ='+ ID +']')你应该把`$('[id ="'+ ID +'"]')`id的值应该在引号内 (3认同)

ysr*_*srb 26

尝试逃避它:

$('#abc\\@def.com').val();
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/category/selectors/的第一段

  • 我相信那将是$('#abc \\ @ def \\.com') (5认同)

kap*_*aki 8

从版本3开始,看起来JQuery有一个有用的方法escapeSelector.

$('#' + $.escapeSelector(my_id_with_special_chars));

https://api.jquery.com/jQuery.escapeSelector/


use*_*288 5

$(document.getElementById('abc@def.com')) 也有效。