在https://github.com/fnagel/jquery-ui的selectmenu中,我为每个选项设置了标题,并显示为图标。工作正常除了文件名包含空格的图标。如果文件名与African Union.png
jquery:
$('select.flags').selectmenu({
icons: [
{find: '.icon'}
],
bgImage: function() {
return 'url(' + $(this).attr("title") + ')';
}
});
HTML:
<option value="African Union.png" class="icon" title="/img/icons/flags/African Union.png" >African Union</option>
如果我无法在jQuery中运行它 - 如何使用php转义空格? str_replace
是唯一的选择吗?
答案 0 :(得分:1)
使用urlencode
。首先,您不能在URL中包含空格。
$filename = "African Union.png";
$url = urlencode($filename);
$html_safe_url = htmlspecialchars($url);
echo "<option value='$html_safe_url' class='icon' title='/img/icons/flags/$html_safe_url'>African Union</option>
答案 1 :(得分:1)
URLs in CSS可以不加引号,也可以单引号或双引号引用。如果没有引用,就像你的情况一样,你需要转义某些字符:
出现在不带引号的URI中的某些字符,例如括号,空格字符,单引号(
'
)和双引号("
),必须使用反斜杠进行转义,以便生成URI value是一个URI令牌:“\(
”,“\)
”。
所以:
'url(' + $(this).attr("title").replace(/(?=[()\s'"])/g, '\\') + ')'
或者您将网址放在引号中,最好是双引号plain single quotes are allowed in URLs:
'url("' + $(this).attr("title") + '")'
答案 2 :(得分:0)
试试这个
$("#text_box_id").change(function() {
var name = $(this).val();
var dname_without_space = $("#text_box_id").val().replace(/ /g, "");
var name_without_special_char = dname_without_space.replace(/[^a-zA-Z 0-9]+/g, "");
$(this).attr("value", name_without_special_char );
});
它将删除空白区域和特殊字符。 看这篇文章