0

我正在尝试使用 VARIABLE 作为属性值...

我有 :

var text = "Hello!";

HTML是:

<li class="pro" id="text">--->(我希望属性 ID 等于 TEXT 变量)

我怎样才能使这项工作?

谢谢


编辑

我的问题会更具体。

这是我真正拥有的:

<li class="product" name="RD-101" price="18"  minimum="4" gap="4"> 
                         <a class="product-image fancybox" href="images/product_big.jpg" title="Picture 4">
                             <img src="images/product_2.png" alt="Preview"/>
                             <div class="text-overlay">
                              <p class="product-heading">Description</p>
                               Enseignes résidentielles imprimées sur 2 panneaux 4 mm 36” x 24” collés dos à dos.
                             </div>
                         </a>
                         <p class="product-heading">RD-101 (Simple)</p>
                         <a href="#" id="test" class="product-buy">Ajouter au panier</a>
                         <p class="product-meta">Double de pareterre 32x24</p>
                         <div class="product-price">18<span class="product-currency">$</span></div>

                    </li>

如您所见,我使用在我的 Javascript 代码中设置的自定义属性。我想知道如何设置(例如)... PRICE 属性为 VARIABLE VALUE 而不是数字“18”,就像我现在粘贴的那样。

我在想类似的东西-->

<li class="product" name="RD-101" price="MY_VARIABLE_HERE"  minimum="4" gap="4"> 
4

6 回答 6

2

$("li.pro").attr('id', text);与 jQuery 一起使用

记住属性name对 a 无效<li>

编辑 :

没有 jQuery,此代码向所有元素添加price(无效)属性li

<ul id="my_ul_id">
  <li>1</li>
  <li>2</li>
  <li>3</li>
</ul>

-

var text = 'Hello';
var arr_li = document.getElementById("my_ul_id").getElementsByTagName("li"); 
for(var i=0 ; i<arr_li.length ; i++)
{
  arr_li[i].setAttribute('price', text);
}

最后一件事,我们说它price不是一个有效的属性。如果您希望您的 HTML 文档有效,请查看此处

于 2012-05-30T17:06:37.360 回答
2

由于您指定了“javascript”而不是“jquery”,因此您可以执行以下操作...

<script type="text/javascript">
var text = "Hello!";
document.getElementById("liItem").setAttribute("id",text);
</script>

<ul>
  <li class="pro" id="liItem">
</ul>

更新以反映属性从“name”到“id”的变化

于 2012-05-30T17:08:21.770 回答
2

您可以使用 JQuery attr方法:

var theName = 'yourMom';
$('li.pro').attr('name', theName);​

http://jsfiddle.net/J798a/2/

于 2012-05-30T17:14:21.740 回答
1
$("li.pro").attr('name', text);

你可以为属性使用任何名称,你喜欢

于 2012-05-30T17:09:22.667 回答
1

Javascript会将其设置为

<script type="text/javascript">
    var text = "Hello!";
    document.getElementById("changeMe").setAttribute("id",text);
</script>

<ul>
   <li id="changeMe">
</ul>

setAttribute 将提供的属性(第一个参数)设置为第二个参数的值......所以 element.setAttribute("name", "john smith") 会将名称设置为 "john smith" 和 element.setAttribute("class" , "math") 将类属性设置为 "math"。

于 2012-05-30T17:19:15.937 回答
1

您也可以使用 javascript 模板库来实现。

一些例子:

例如,使用 JavascriptMVC,包含以下行(其中 text 实际上是 JS 变量)的 ejs 文件将被转换为 html:

<li class="pro" id="<%= text %>">

您可以在这里阅读: http://javascriptmvc.com/docs.html#! jQuery.View

欢迎来到神奇的无限 Javascript 框架/库世界:)!!

于 2012-05-30T18:07:41.670 回答