使用Jquery更改下拉列表的值

时间:2012-04-25 07:33:03

标签: javascript jquery

<select name="vehicle_make" onchange="test1(this.value)" style="width: 130px; float:left;" id="vehicle_make" class="home_input">
    <option value="">Choose Make</option>
    <option value="2063">Acura</option>
    <option value="2064">Honda</option>
</select>

我有一个下拉列表。我已经读取了链接的href属性并将其指定为下拉列表的值。但我想只从链接中取出数字并将其作为值分配给下拉列表我该怎么做。

<select name="vehicle_make" onchange="test1(this.value)" style="width: 130px; float:left;" id="vehicle_make" class="home_input">
    <option value="">Choose Make</option>
    <option value="http://store.teknotik.com/category-s/2063.htm">Acura</option>
    <option value="http://store.teknotik.com/category-s/2064.htm">Honda</option>
</select>

我使用了以下jquery来获取值为

的链接
$("#data a").each(function(index) {
        if ($(this).attr("class") == "subcategory_link") {


            //document.getElementsById("year").innerHTML="<option value="+$(this).attr("href")+">test</option>";
            lnk[cnt] = $(this).attr("href");
            cnt = cnt + 1;
            //alert($(this).attr("href"));

        }
    });

但我希望将下拉值设为:

<select name="vehicle_make" onchange="test1(this.value)" style="width: 130px; float:left;" id="vehicle_make" class="home_input">
    <option value="">Choose Make</option>
    <option value="2063">Acura</option>
    <option value="2064">Honda</option>
</select>

我希望只有.htm之前的数字在dropdownho发送为值。请指教。

5 个答案:

答案 0 :(得分:3)

简单方法:

$('#vehicle_make option[value!=""]').each(function() {
    this.value = this.value.replace(/\D/g, "");
});​

Live DEMO


\d // Numerical char
\D // Not numerical char <===
g  // Is a flag which means find all the occurrences, and not only the first.

Excellent regex cheat sheet.

所以我正在寻找所有非数字字符(使用\D)并用空字符串“替换”它们。

答案 1 :(得分:0)

尝试.replace('', '')功能

.replace('http://store.teknotik.com/category-s/','').replace('.htm','')

应该只留下数值

答案 2 :(得分:0)

好像这里有两个部分......只需要你想要的数字:

lnk[cnt] = $(this).attr('href').substring($(this).attr('href').lastIndexOf('/')+1);
lnk[cnt]=lnk[cnt].replace('.htm','');

(不是最优雅的解决方案,但应该有效)

然后设置值:

$("#vehicle_make").val(lnk[cnt])

答案 3 :(得分:0)

你可以在下面找到它;

var url = $(this).attr("href");
var urlTemp1 = url.split("/");
var urlTemp2 = (urlTemp1[urlTemp1.length -1]).split(".");
var yourNumber = urlTemp2[0];
alert(yourNumber);

答案 4 :(得分:0)

尝试:


$(document).ready(function() {
  $("select[name='vehicle_make'] option[value!='']").each(function() {
     this.value = this.value.split("/").pop().split(".")[0];
  });
});

希望有所帮助