javascript替换字符串continuable

javascript replace string continueable

本文关键字:continuable 字符串 替换 javascript      更新时间:2023-09-26

我得到了一个替换字符串的代码。这是我的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文本,因为planIDnoteCodeID字符串有值。可以再把它转到noteCodeID="" planID=""吗?

您正试图用jquery设置一个非DOM实体,这是不可能的。当你有一个模板引擎来生成HTML时,模板代码会在加载任何javascript之前执行并给出结果,所以你不能设置模板属性,除非模板引擎本身为你提供了这样做的机制。

如果你真的想让客户指定一个特定的模板计划ID来向他展示一些特定的东西,你需要通过AJAX调用加载你的页面,在AJAX调用中,你向服务器发送一个通过noteCodeID & planID的请求,并用自定义模板引擎执行所需的HTML进行响应。

如果您的HTML中有想要使用jquery设置的自定义属性,那么您可以简单地使用attr函数:

$('#foobar').attr('foo','bar');