我正在使用livequery来检测已创建的元素并应用一些css。
它有效,但我对某些选择器有问题。
HTML:
<p id="Test:SomeElement.Id">TEST3</p>
JS:
$("body").livequery("#Test\:SomeElement\.Id" , function() {
$(this).css('color', 'red');
})
上面的示例将生成此错误:
语法错误,无法识别的表达式:unsupported pseudo:SomeElement
看起来它是livequery中的一个错误,因为jquery不会因为这个选择器而失败。
这是JS小提琴http://jsfiddle.net/20f05p33/1/ 请将js框架滚动到底部以跳过实时查询库。
答案 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);
}