2017-09-12 20 views
0

new Option()に余分な属性を追加して、値をhrefに渡すことができます。新しいオプション要素に追加属性を追加し、hrefに属性を渡します

for(var i =0; i < response.data.length; i++) 
    { 
     pages[i] = new Option(response.data[i].name,response.data[i].access_token); 
    } 

は今のオプションは、この

<option value ="access_token">name</option> 

最終結果は私が値を収集し、HREFに渡す2番目のスクリプトで、よりこの

<option value ="access_token" data-id="id">name</option> 

のようになりますように見えます

var access_token = e.options[e.selectedIndex].value;  
var link = "next_page.php?access_token=" + access_token; 
var element = document.createElement("a"); 
element.setAttribute("href", link); 

今この

<a href="next_page.php?access_token=access_token"></a> 

は、hrefの最終結果は、新しい属性に

<a href="next_page.php?access_token=access_token&data_attribute=data"></a> 
+0

['dataset'](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset)プロパティ – Hamms

+0

を使用しないと、HTML要素にカスタムデータ属性を読み書きできます。 'var link =" next_page.php?access_token = "+ access_token +"& "+ extraAttribute;' – freginold

+0

@freginold(あなたがあなたの余分な属性を持っていれば、それは間違っています。 :forループで属性を動的に生成する必要があります –

答えて

1

(pages[i] = new Option('_name_','_value_')).dataset['id'] = '_id_';

をつかむ必要がありますhrefのルックスのようにこれはFFで動作しますが、残念ながらchainningを許可していません。 これが役立つことを願っています。

+0

ありがとうございます。これは機能します。連鎖することはどういう意味ですか?私の無知を許しなさい。 –

+0

そして、それはhrefに添付する質問の一部だったので、このような変数を作成する必要があります: 'var dataset = e.options [e.selectedIndex] .dataset; '? –

+0

チャネリングは、 '='演算子の後にOptionオブジェクトが返されないので、同じ行の他の属性に対して繰り返すことはできないので、別の '.dataset'をチェーンとして実行することはできません。 'pages [i] .dataset ['attrib2'] = '_attrib2_value_''として新しい行に追加することができます。 DOMStringMapオブジェクトである 'dataset'は' pages [i] .dataset.push({attr1:val1、attr2:val2}) 'を使ってインスタンスごとに複数のデータ属性を一度に追加することを許可しません。 – Reflective

関連する問題