0

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

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

HTML:

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

JS:

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

上面的例子会产生这个错误:

语法错误,无法识别的表达式:不支持的伪:SomeElement

在此处输入图像描述

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

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

4

2 回答 2

1

用户\\而不是\

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

或者

$("body").livequery('p[id="Test:SomeElement.Id"]' , function() { 
      $(this).css('color', 'red');
})
于 2017-01-18T13:01:33.523 回答
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);
        }
于 2017-01-18T13:17:33.390 回答