2013-02-27 35 views
0

这可能是一个愚蠢的问题,因为我没有找到任何有关我的具体问题的任何信息,这是我的第一个JavaScript/HTML项目。如何通过他们的ID传递参数?

我想通过与它们相关联的id(book1和price1)以书籍名称及其价格传递。我的想法是,这样,如果名称或价格稍后发生变化,函数“addToCart(book1,price1)”将自动传入更新的名称/价格。是否有可能在javascript/html5中以这种方式将字符串传递到函数中?

下面是部分代码:

<td> 
    <span class="bookName" id="book1"> 
     <b>Artificial Intelligence: Modern Approach</b> 
    </span> <br> 
    <b>PRICE: $</b> 
    <span id="price1"> 158.55 </span> 
    <button type="button" onclick="addToCart(book1, price1)">Add to cart!</button> 
</td> 

提前感谢!

+0

只是引用他们'addToCart( 'BOOK1', '价格1')' – adeneo 2013-02-27 22:07:37

+0

是的,这是可能的。 – 2013-02-27 22:07:38

+1

我不明白这个问题是如何与HTML5相关的。 – Bergi 2013-02-27 22:09:20

回答

3

HTML

<button type="button" onclick="addToCart('book1', 'price1')">Add to cart!</button> 

JS

function addToCart(productId, priceId) { 
    // ... 
} 

就其他一些有关您的代码注释:

  • 使用<br />代替<br>,否则是无效的HTML
  • 理想情况下使用<label>标签,这使得它更容易

<label for="price1">PRICE:</label> 
<span>$</span> 
<span id="price1">158.55</span> 
  • 这是通常更好地挂接在一个单独的JavaScript文件(或<script>标签)事件,而不是HTML属性。这对企业的功能和您的标记/ UI
+0

这工作,谢谢!我没有意识到我需要的只是标签名称本身。还在想OO。 – Adrogans 2013-02-27 22:14:02

0

一个更清晰的分离假设你使用jQuery:

onClick="addToCart($(this).siblings('.bookName').text(), $(this).siblings('.price').text())" 

这就要求你把一类到价格跨度(<span class="price">158.55</span>)。

记住...在DOM每个元素“知道”它在哪里,你可以平凡导航上/下这棵树附近找到相关的元素。

+1

“...这是我第一个javascript/html项目”。因此,我怀疑他们正在使用jQuery。 – 2013-02-27 22:09:25

+0

OP似乎没有使用jQuery。 – Bergi 2013-02-27 22:09:45