在 ADF 中使用 Jquery 和动态生成的 ID

Using Jquery with dynamically generated id in ADF

我使用下面的代码获取 id p:r:0:abcp\:r\:0\:abc

function getId(comp) {
  var id = comp.getClientId().split(':').join('\\:');
  return id;
}

我正在为以下内容使用生成的 ID

$(id).css("background-image", "url('../something.png')");
$(id).slideToggle();

它没有改变背景或做动画

但是,如果我按照下面的方式硬编码 id,它就可以正常工作

$(`#p\:r\:0\:abc`).css("background-image", "url('../something.png')");
$(`#p\:r\:0\:abc`).slideToggle();

你能给点建议吗?

您在创建选择器时缺少 ID 选择器 #。应该是:

$('#'+id); // id = 'p\:r\:0\:abc'

您可以使用属性等于选择器来处理带有特殊字符的选择器:

var id= 'p:r:0:abc';
$('[id="'+id+'"]').css("background-image", "url('../something.png')");
$('[id="'+id+'"]').slideToggle();

您的加入中有 1 个 \

您只需要 1 \ 即可转义 : - p\:r\:0\:abc.

var id = "p:r:0:abc".split(':').join('\\:');
alert($('#' + id).text())
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<b id="p:r:0:abc">TEST</b>