我尝试动态创建一个对象,但我无法将此字符串转换为功能性HTML对象。有人能告诉我正确的方法吗?感谢。
var string ="<select class=\"numbers\">\
<?php\
foreach($data as $key => $value){\
if($key == 0){\
echo '<option value=\"'.$value.'\" selected=\"selected\">'.$value.'</option>';\
}\
else{\
echo '<option value=\"'.$value.'\">'.$value.'</option>';\
}\
}\
?>\
</select>";
element.prepend(string );
答案 0 :(得分:1)
你不能在Javascript中使用PHP,因为它是服务器端代码,JS永远不会看到它。但是,使用纯HTML字符串,您可以执行$(string)
,它将作为jQuery对象在该字符串中成为根对象。
所以从本质上讲,您的PHP代码将位于一个脚本标记内,该脚本标记将生成Javascript string
变量:
var string ="<select class=\"numbers\">";
<?php
foreach($data as $key => $value){
if($key == 0){
echo 'string += "<option value=\"'.$value.'\" selected=\"selected\">'.$value.'</option>";';
} else{
echo 'string += "<option value=\"'.$value.'\">'.$value.'</option>";';
}
}
?>
string += "</select>";
和你的后续Javascript将是:
var select = $(string);
element.prepend( select );
这一切都有效,因为渲染的HTML脚本看起来像浏览器:
var string ="<select class=\"numbers\">";
string += "<option value=\"default\" selected=\"selected\">default</option>";
string += "<option value=\"Option 1\">Option 1</option>";
string += "<option value=\"Option 2\">Option 2</option>";
string += "<option value=\"Option 3\">Option 3</option>";
string += "<option value=\"Option 4\">Option 4</option>";
string += "</select>";
var select = $(string);
element.prepend( select );
答案 1 :(得分:1)
关于PHP的好处是你基本上可以在脚本中添加任何你想要的内容。我在此代码中遇到的问题是因为我将 foreach 循环放在查询之前。所以我所做的只是替换包含foreach循环的脚本标记上方的查询,并且它可以工作。这种方法对我来说是新的,我今天学到了新东西。每个人都很棒,非常感谢你。
答案 2 :(得分:-1)
var string = '<select class="number">';
<?php
foreach($data as $key => $value) {
echo 'string += \'<option value="'.$value.'">'.$value.'</option>\'';
} ?>
string += '</select>';