0
免责声明独特价值 - 我,直到它在网页上呈现后,在这段代码没有控制权。的jQuery - 脚本插入使用阵列
我需要整合每个以下3个属性的一个打开的表脚本URL(每个必须在注入脚本URL不同数量)。由于没有独特的识别元素 - 最好的方法是将电话号码转换为仅有数字的字符串。
我们可以用手机号码作为重点。然后,我们可以为每个可以开启的属性号码分配一个值。下面的JavaScript区演示的步骤:
鉴于此HTML:
<ul class="ui-listview">
<li class="ui-li ui-li-static ui-btn-up-c">
<div class="ui-restaurant-details">
<div class="ui-address">
<div class="ui-short-address ui-red-text ui-playfair">Arlington Heights, IL </div>
<div class="ui-full-address">798 West Algonquin Road </div>
<div class="ui-full-address">Arlington Heights, IL 60005 </div>
<div class="ui-phone-number">
<a class="ui-link" onclick="return doCall(event);" href="tel:(111) 111-1111" data-tag="rm-telephone-number-list-click">(111) 111-1111</a>
</div>
</div>
</div>
</li>
<li class="ui-li ui-li-static ui-btn-up-c">
<div class="ui-restaurant-details">
<div class="ui-address">
<div class="ui-short-address ui-red-text ui-playfair">Wheeling, IL </div>
<div class="ui-full-address">583 North Milwaukee Avenue <div>
<div class="ui-full-address">Wheeling, IL 60090 </div>
<div class="ui-phone-number">
<a class="ui-link" onclick="return doCall(event);" href="tel:(222) 222-2222" data-tag="rm-telephone-number-list-click">(222) 222-2222</a>
</div>
</div>
</div>
</li>
<li class="ui-li ui-li-static ui-btn-up-c">
<div class="ui-restaurant-details">
<div class="ui-address">
<div class="ui-short-address ui-red-text ui-playfair">South Barrington, IL </div>
<div class="ui-full-address">100 West Higgins Road <div>
<div class="ui-full-address">South Barrington, IL 60010 </div>
<div class="ui-phone-number">
<a class="ui-link" onclick="return doCall(event);" href="tel:(333) 333-3333" data-tag="rm-telephone-number-list-click">(333) 333-3333</a>
</div>
</div>
</div>
</li>
的Javascript:
//Extract property phone (integers only) and use it as unique identifier
//e.g. (111) 111-1111 becomes 1111111111
var propertyPhone = $('[data-tag=rm-telephone-number-list-click]').text().match(/\d+/); //not working correctly, only grabing 3 digits
//Use propertyPhone(s) integers like 1111111111 to be keys and assign different open table var values to be appended to script url
var propertyArrayMap = {
'1111111111' : '11357',
'2222222222' : '48293',
'3333333333' : '99430'
};
//Append script after .ui-address for each phone (key) with correct value (openTableVar)
$.each(propertyArrayMap, function(key, value) {
$('.ui-address').after('<div class="OTButton"><script type="text/javascript" src="https://secure.opentable.com/ism/link.aspx?rid='+value+'&restref='+value+'&bgimage=https://secure.opentable.com/img/frontDoor/ot_btn_red.png"><\/script></div>');
});
这里是一个小提琴:http://jsfiddle.net/7Er9R/1/
一个红色按钮会被附加到脚本将生成的每个属性(如果d)一个正确。到目前为止,我已经尝试过最好的 - 任何想法如何让它按预期工作?
感谢迪特 - 即采取PHONENUMBERS(第一步)的照顾。但是,我们如何完成propertyArrayMap赋值并获取每个属性的脚本并为其添加? –
看到更新的小提琴,类似的东西? – Dieterg
嗯..不完全。关键/值是独一无二的。因此,如果键(电话)是1111111111,那么传递给打开的表url的值将是11357.如果键是2222222222,那么传递给打开的表url的值将是48293.因此,我对于键/值对的映射是应该在这样的脚本代码网址进行底涂:https://secure.opentable.com/ism/link.aspx?rid='+value+'&restref='+value+'&bgimage=https://secure.opentable.com /img/frontDoor/ot_btn_red.png(此脚本将创建红色按钮,如果自动小提琴代码工作正常) –