问问题
888 次
3 回答
3
<a href="#" id="openpop" countries="US,CA">link</a>
<select id="countryselection" multiple="multiple">
<option>US</option>
<option>CA</option>
<option>GB</option>
</select>
//The event handler
$("#openpop").click(function(e){
e.preventDefault();
var vals = $(this).attr('countries').split(",");
$("#countryselection").val(vals);
});
尽管根据您所针对的 html 规范添加国家属性是有效的,但您可能应该在链接标签中使用数据属性来获取诸如“国家”之类的信息。您可以以相同的方式访问它们。
$(selector).attr('data-countries');
<a href="#" id="openpop" data-countries="US,CA">link</a>
于 2012-04-27T02:07:40.933 回答
0
假设我们有这个属性:data-countries="US, CA"
在<a href="#" id="openpop" data-countries="US, CA"> ... </a>
我们可以这样创建一个数组:
con = $("a").data('countries');
arr = con.split(",");
alert(arr[0])
于 2012-04-27T02:02:15.840 回答
0
目前尚不清楚您为什么要尝试使用属性来存储结构化数据,但是,如果允许您按如下方式定义您的国家/地区属性:
<a href="#" id="openpop" countries="US,CA">
您可以使用 Javascript拆分函数将其转换为数组。例如:
("#countryselection").val($(this).attr("countries").split(/,/));
您原始行的问题:
("#countryselection").val([$(this).attr("countries")]);
...是 Javascript 正在获取属性的实际字符串值,$(this).attr("countries")
并将其用作匿名数组的唯一元素,并传递给val()
. 尽管此属性的值看起来像数组语法,但您应该知道它不是这样解析的。只有您在文本编辑器中输入的 Javascript 源代码(或 的字符串参数eval()
)才会被解释。
于 2012-04-27T02:03:10.910 回答