我有一个替换字符串的代码。这是我的PHP代码创建的HTML。
...
foreach ($notes as $note) {
echo '<li><input name="noteTypeID" type="radio" class="noteTypeID" value="'.$note['NOTETYPEID'].'"></li>';
}
...
foreach (...) {
...
echo '<li class="getshrtcode">[srms_more_info id="'.$cnt.'" instanceID="'.$val_id.'" type="'.$val_type.'" noteCodeID="" planID=""]</li>';
...
}
我的脚本是这样的:
jQuery(document).ready(function(){
var noteTypeID = null;
var planID = null;
jQuery('.noteTypeID').click(function() {
noteTypeID = jQuery(this).val();
planID = prompt("Enter a Template planID value from axcelerate");
jQuery('.getshrtcode').each(function(){
jQuery(this).text(jQuery(this).text().replace('noteCodeID=""', 'noteCodeID="'+ noteTypeID +'"'));
jQuery(this).text(jQuery(this).text().replace('planID=""', 'planID="'+ planID +'"'));
});
});
});
第一次改变是好的,但下一次没有。我发现它无法重新分配.getshrtcode
文本,因为planID
和noteCodeID
字符串具有值。是否可以再次转换noteCodeID="" planID=""
?
答案 0 :(得分:0)
您正在尝试使用jquery设置非DOM实体,这是不可能的。当你有一个模板引擎来生成HTML时,模板代码会被执行并在任何javascript加载之前给出结果,因此你不能设置模板属性,除非模板引擎本身为你提供了一种机制来实现这一点。
如果您真的希望客户指定某个模板计划ID以向他展示特定的内容,则需要通过AJAX调用加载您的页面,您可以通过noteCodeID & planID
向服务器发送请求并回复由于自定义模板引擎执行而产生的所需HTML。
如果HTML中有自定义属性要使用jquery设置,那么您只需使用attr
函数:
$('#foobar').attr('foo','bar');