Livequery不支持伪问题

时间:2017-01-18 12:58:22

标签: javascript jquery css css3 livequery

我正在使用livequery来检测已创建的元素并应用一些css。

它有效,但我对某些选择器有问题。

HTML:

<p id="Test:SomeElement.Id">TEST3</p>

JS:

$("body").livequery("#Test\:SomeElement\.Id" , function() { 
$(this).css('color', 'red');
})

上面的示例将生成此错误:

  

语法错误,无法识别的表达式:unsupported pseudo:SomeElement

enter image description here

看起来它是livequery中的一个错误,因为jquery不会因为这个选择器而失败。

这是JS小提琴http://jsfiddle.net/20f05p33/1/ 请将js框架滚动到底部以跳过实时查询库。

2 个答案:

答案 0 :(得分:1)

用户\\代替\

$("body").livequery("#Test\\:SomeElement\\.Id" , function() { 
  $(this).css('color', 'red');
})

$("body").livequery('p[id="Test:SomeElement.Id"]' , function() { 
      $(this).css('color', 'red');
})

答案 1 :(得分:0)

检查更新的小提琴:jsfiddle.net/20f05p33/2/

$(document).ready(function () {
  $( "#btn" ).click(function() {
    $( "#nav" ).append( '<p class="warning">TEST2</p>' );
    $( "#nav" ).append( '<p id="Test:SomeElement.Id">TEST3</p>' );
  }); 
});

var myStringArray = ['.warning', '[id="Test:SomeElement.Id"]'];

        try {
            $("body").livequery(myStringArray.join() , function() { 
                $(this).css('color', 'red');
            })
        }
        catch(err) {
            console.log(err.message);
            alert(err.message);
        }